Ich habe eine Funktion in meiner Kiste hinzugefügt, die serde
Unterstützung hinzufügt. Allerdings verstehe ich nicht ganz, wie es richtig zu nutzen:Ist es möglich, bedingt mit Merkmalen abzuleiten?
// #[derive(Debug, Serialize, Deserialize, Clone)] // goes to:
#[derive(Debug, Clone)]
#[cfg(feature = "serde_support")]
#[derive(Serialize, Deserialize)]
pub struct MyStruct;
Derzeit dieser Code behandelt alles unter cfg(feature)
bedingt kompiliert, also ohne mein serde_support
Feature meiner Kiste nicht MyStruct
hat auch.
Ich habe versucht, es mit Klammern zu wickeln, aber es gibt einen anderen Fehler:
Code:
#[derive(Debug, Clone)]
#[cfg(feature = "serde_support")] {
#[derive(Serialize, Deserialize)]
}
pub struct MyStruct;
Fehler:
error: expected item after attributes
--> mycrate/src/lib.rs:65:33
|
65 | #[cfg(feature = "serde_support")] {
| ^
So, wie dies zu tun?
, die sehr nützlich ist - es ist seltsam, dass es nicht besser in der Dokumentation ausgesetzt ist. – ljedrz