6
Serialize
が派生したときに、serde
のシリアル化出力にメソッドの値を追加する方法はありますか?私は「仮想フィールド」のようなものを探しています。シリアル化出力をserdeするメソッドの値を追加
は私がSerializer
/Visitor
自分自身を定義するか、Value
を取得するためにserde_json::builder
を使用することができます知って、私はちょうどserde_macro
魔法を使ってこれを行うにはどのような方法があった最初のかどうかを確認したかったです。私はこのような何かしたい明確にすることが
:ここ
#[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:それはまだ冗長だし、それがこれを処理するための最良の方法であるかどうかは知りませんが、私はレコードのそれをここに追加するだろうと思いました!ラッパーを使用する簡単な例を追加しました。これがあなたの意味ですか?これはビルダーやシリアライザを定義するよりも簡単に簡単ですが、実際には理想的ではありません... –