【问题标题】:How to see serde's generated implementation of Deserialize?如何查看 serde 生成的反序列化实现?
【发布时间】:2021-05-14 06:06:39
【问题描述】:

我用:

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
pub struct Foo {
    ...
}

我想为Foo 编写一个自定义Deserialize

如何查看serde 生成的派生Deserialize 代码?我想以此为起点。

【问题讨论】:

    标签: rust serde


    【解决方案1】:

    如何查看 serde 生成的派生反序列化代码?我想以此为起点。

    您可以要求 rustc 转储宏扩展代码(它位于 rust 游乐场的“工具”下)。由于 rustc 调用有点复杂,尤其是对于一个成熟的基于货物的项目,因此 rustacean extraordinaire David Tolnay 发布了一个cargo expand 命令,您可以使用cargo install,这基本上为您完成了烦人的工作。

    当涉及到 serde 时,我不建议将其作为 起点,但生成的 ser/de 代码有些粗糙/难以阅读。我建议改用the serde documentation,尤其是serde datamodelcustom serialization

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-25
      • 2021-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      相关资源
      最近更新 更多