8
我在我的箱子中添加了一個功能,它增加了serde
支持。不過,我不太明白如何正確地使用它:是否可以有條件地推導出特徵?
// #[derive(Debug, Serialize, Deserialize, Clone)] // goes to:
#[derive(Debug, Clone)]
#[cfg(feature = "serde_support")]
#[derive(Serialize, Deserialize)]
pub struct MyStruct;
目前這個代碼把下面cfg(feature)
條件編譯的一切,所以沒有我serde_support
功能我的箱子沒有MyStruct
也。
我曾嘗試用大括號來包裝它,但它給出了另一個錯誤:
代碼:
#[derive(Debug, Clone)]
#[cfg(feature = "serde_support")] {
#[derive(Serialize, Deserialize)]
}
pub struct MyStruct;
錯誤:
error: expected item after attributes
--> mycrate/src/lib.rs:65:33
|
65 | #[cfg(feature = "serde_support")] {
| ^
那麼,如何做到這一點?
這是非常有用的 - 它的怪異,它不是更好的文檔暴露。 – ljedrz