如何查看serde生成的反序列化实现?
How to see serde's generated implementation of Deserialize?
我使用:
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
pub struct Foo {
...
}
我想为 Foo
编写自定义 Deserialize
。
如何查看 serde
生成的派生 Deserialize
代码?我想以此为起点。
How can I see the derived Deserialize code which serde generates? I'd like to use that as a starting point.
您可以要求 rustc 转储宏扩展代码(它在 rust 操场的“工具”下)。由于 rustc 调用有点复杂,特别是对于成熟的基于货物的项目,rustacean extraordinaire David Tolnay 发布了一个 cargo expand
命令,您可以 cargo install
,它基本上为您完成了烦人的工作。
我不推荐它作为 起点 当谈到 serde 时,生成的 ser/de 代码有点粗糙/难以阅读。我建议通过 the serde documentation instead, especially serde datamodel and custom serialization.
我使用:
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
pub struct Foo {
...
}
我想为 Foo
编写自定义 Deserialize
。
如何查看 serde
生成的派生 Deserialize
代码?我想以此为起点。
How can I see the derived Deserialize code which serde generates? I'd like to use that as a starting point.
您可以要求 rustc 转储宏扩展代码(它在 rust 操场的“工具”下)。由于 rustc 调用有点复杂,特别是对于成熟的基于货物的项目,rustacean extraordinaire David Tolnay 发布了一个 cargo expand
命令,您可以 cargo install
,它基本上为您完成了烦人的工作。
我不推荐它作为 起点 当谈到 serde 时,生成的 ser/de 代码有点粗糙/难以阅读。我建议通过 the serde documentation instead, especially serde datamodel and custom serialization.