我有时以这种方式使用serde
和serde
:
bincode
[只要我序列化这些变体之一,我就认为
嘿..
bincode
的实际内容是静态已知的,也许我应该将其设为use serde::{Deserialize, Serialize}; use bincode; #[derive(Serialize, Deserialize)] pub enum PlainDryEnum { FirstVariant, Second, Third, } fn example() { let message = bincode::serialize(&PlainDryEnum::Second) .expect("Could not serialize variant."); }
或至少是message
,所以我不会依赖对const
的无用动态调用。
然后我想
嗯..我想我也可以为
lazy_static
中的每个变体做同样的事情。尝试使用宏。
最后我想
请稍等..这不是编译器的工作吗?
我应该担心这种优化水平吗?在这种情况下,编译器是否优化了对lazy_static
的调用,而只是用常量替换(本质上)此代码?
serialize
[PlainDryEnum
不是serialize
,因此无法在编译时执行