8
Sandığımda serde
desteği ekleyen bir özellik ekledim. Ancak, ben oldukça düzgün nasıl kullanılacağını anlamıyorum: Şartlı olarak özelliklerle türetmek mümkün mü?
// #[derive(Debug, Serialize, Deserialize, Clone)] // goes to:
#[derive(Debug, Clone)]
#[cfg(feature = "serde_support")]
#[derive(Serialize, Deserialize)]
pub struct MyStruct;
Şu anda bu kod yani benim sandık ayrıca
MyStruct
yok benim
serde_support
özellik olmadan,
cfg(feature)
koşullu derlenmiş altında herşeyi davranır.
Ben parantez ile sarın çalıştık ama başka bir hata veriyor:
Kodu:
#[derive(Debug, Clone)]
#[cfg(feature = "serde_support")] {
#[derive(Serialize, Deserialize)]
}
pub struct MyStruct;
Hata:
error: expected item after attributes
--> mycrate/src/lib.rs:65:33
|
65 | #[cfg(feature = "serde_support")] {
| ^
Peki bu nasıl yapmalı?
#[derive(Debug, Clone)]
#[cfg_attr(feature = "serde_support", derive(Serialize, Deserialize))]
pub struct MyStruct;
O Rust reference about "conditional compilation" tarif ediyor:
- bu daha iyi dokümanlar maruz değil garip. – ljedrz