- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#[derive(Serialize)]
pub struct SLPInfoVersion {
name: String,
protocol: i32
}
impl SLPInfoVersion {
lazy_static! {
pub static ref V1_13: MyStruct = (SLPInfoVersion {
name: "1.13".to_string(),
protocol: 404
});
}
}
lazy_static!
调用给我这个错误:
error: expected one of `(`, `async`, `const`, `default`, `existential`, `extern`, `fn`, `type`, or `unsafe`, found `struct`
--> src\protocol\packet\mod.rs:244:2
|
244 | lazy_static! {
| _____^
| |_____|
| ||_____|
| |||
245 | ||| pub static ref V1_13: SLPInfoVersion = (SLPInfoVersion {
246 | ||| name: "1.13".to_string(),
247 | ||| protocol: 404
248 | ||| });
249 | ||| }
| ||| ^
| |||_____|
| ||______expected one of 9 possible tokens here
| |_______unexpected token
| in this macro invocation
|
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
我正在使用 Rust 1.32.0。
最佳答案
你不能。 lazy-static 通过创建一个新的隐藏类型以及该类型的 static
变量来工作。这些都不允许在 impl
block 中创建:
struct Foo;
impl Foo {
static BAR: u8;
struct Bar;
}
error: expected one of `async`, `const`, `crate`, `default`, `existential`, `extern`, `fn`, `pub`, `type`, `unsafe`, or `}`, found `static`
--> src/lib.rs:4:5
|
3 | impl Foo {
| - expected one of 11 possible tokens here
4 | static BAR: u8;
| ^^^^^^ unexpected token
error: expected one of `async`, `const`, `crate`, `default`, `existential`, `extern`, `fn`, `pub`, `type`, `unsafe`, or `}`, found `struct`
--> src/lib.rs:6:5
|
4 | static BAR: u8;
| - expected one of 11 possible tokens here
5 |
6 | struct Bar;
| ^^^^^^ unexpected token
相反,在 impl
block 外部或函数内部使用它。
另见:
关于rust - 如何使用 lazy_static!在结构实现中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55984384/
我使用 lazy_static 在内存中保存一个 HashMap。我使用两种方法添加和获取元素,但我在生命周期方面遇到了一些问题。 这是我的代码: #[macro_use] extern crate
我正在尝试使用递归公用表表达式(大约80行SELECT语句)集成一个相当复杂的SQL查询。有两个不同的查询可以为递归设置种子。我不想在我的代码中嵌入两个不同的80行SQL语句,它们之间只有一行不同,谢
#[derive(Serialize)] pub struct SLPInfoVersion { name: String, protocol: i32 } impl SLPInfoV
我尝试创建一个 HashMap 并将函数作为值: #[macro_use] extern crate lazy_static; use std::collections::HashMap; lazy_
我有一个大项目,我在其中使用 lazy_static 创建一个 singleton。我认为 lazy_static crate 中存在错误(仅出现在大型项目中)或者我做错了什么,因为必须调用一次以创建
如果我取消注释 create_log,log 和 LOG 都会打印在控制台上。没有它,什么也不会打印。这是怎么回事? #[macro_use] extern crate slog; extern cr
我是 Rust 的新手。我正在将 mongodb 与异步运行时(tokio)一起使用。 我想全局初始化 mongo 客户端,所以我使用了一个名为 lazy_static 的 crate .问题是mon
我正在尝试使用 lazy_static crate 初始化一些静态变量,这些变量通过读取 build.rs 中的一些环境变量来赋值。我想要实现的类似于 this post . 我的代码如下: lazy
我想将一些 json 读入静态 HashMap ,并且正在使用 lazy_static和 serde ,但我不知道如何(如果有的话)解决这个 serde终身问题: #[macro_use] exter
这个问题在这里已经有了答案: Why does a lazy-static value claim to not implement a trait that it clearly implemen
我想分享一个 evmap ,一个无锁的、最终一致的、并发的多值映射,跨 Rust 程序中的所有线程。 天真地,它看起来像这样: #[macro_use] extern crate lazy_stati
这个问题在这里已经有了答案: Trying to return reference from RwLock, "borrowed value does not live long enough" E
我正在使用模拟函数编写测试,使用 Mutex 控制测试之间的返回值: #[macro_use] extern crate lazy_static; #[cfg(test)] pub use mock:
这段代码: #[macro_use] extern crate lazy_static; extern crate mysql; use mysql::*; fn some_fn() { la
我正在使用 Rust,为了方便起见,我想使用一个全局可变的 HashMap。然而,虽然可以使用 lazy_static 和 Mutex 定义一个全局的、可变的 HashMap,但是对于我的 Strin
我是一名优秀的程序员,十分优秀!