C'è un modo per aggiungere il valore di un metodo all'output di serializzazione di serde
quando la struct deriva Serialize
? Sto cercando qualcosa come un "campo virtuale".Valore aggiunto di un metodo per l'output di serializzazione di serde
So che posso definire il mio Serializer
/Visitor
o utilizzare serde_json::builder
per ottenere un Value
, volevo solo controllare prima se ci fosse un modo per farlo utilizzando serde_macro
magia.
essere chiaro che voglio qualcosa di simile:
#[derive(Serialize, Deserialize, Debug)]
struct Foo {
bar: String,
#[serde(call="Foo::baz")]
baz: i32 // but this is not a real field
}
impl Foo {
fn baz(&self) -> i32 { self.bar.len() as i32 }
}
@Shepmaster, grazie per il suggerimento! Ho appena aggiunto un semplice esempio di utilizzo di un wrapper: è questo che intendi? Questo è sicuramente più facile/più semplice della definizione di un generatore o serializzatore, ma non è proprio l'ideale ... –