首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用serde将Rust对象序列化为Rust文本?

如何使用serde将Rust对象序列化为Rust文本?
EN

Stack Overflow用户
提问于 2020-08-04 14:46:33
回答 1查看 74关注 0票数 1

我想在代码生成中使用serde,将一些复杂的嵌套对象迭代嵌入到生成的代码中。

除了以下形式,我不希望serde产生任何其他东西:

代码语言:javascript
复制
const FOO: Foo = Foo {
    bar: 0,
    baz: Baz {
        quux: 1
    }
};

(也许是由我提供const FOO: Foo =。)

Ron似乎是要使用的机箱,但它看起来并没有为文字值生成Rust语法。

我是不是误解了它的目的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-04 16:19:40

要真正做到你所要求的,你需要write a custom Serde serializer。要让所有细节都正确,还需要做一些工作。可以使用proc_macro2::LiteralDisplay实现将大多数文字(例如字符串、字符和数字)序列化为有效的生锈文字,该实现将负责转义特殊字符、在需要时使用.0作为浮点数的后缀以及类似的细节。但是,看起来实现结构的序列化程序将取决于您。

在Rust中,最常见的代码生成方法是writing a proc macro,并使用quote crate发出源代码。我对您的用例了解不足,无法判断这是否是解决您的问题的有效方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63241508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档