我用:
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
pub struct Foo {
...
}
Run Code Online (Sandbox Code Playgroud)
我想写一个自Deserialize定义Foo。
如何查看生成的派生Deserialize代码serde?我想以此为起点。
如何查看 serde 生成的派生反序列化代码?我想以此为起点。
您可以要求 rustc 转储宏扩展代码(它位于 rust 游乐场的“工具”下)。由于 rustc 调用有点复杂,特别是对于一个成熟的基于货物的项目,rustacean 非凡的 David Tolnay 发布了一个cargo expand命令,你可以cargo install,它基本上为你完成了烦人的工作。
我不建议将其作为serde的起点,但生成的 ser/de 代码有点粗糙/难以阅读。我建议您阅读serde 文档,尤其是serde 数据模型和自定义序列化。