gpt4 book ai didi

rust - 如何使用 serde 将 Rust 对象序列化为 Rust 文字?

转载 作者:行者123 更新时间:2023-12-03 11:37:06 25 4
gpt4 key购买 nike

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

我不希望 serde 产生除以下形式之外的任何东西:

const FOO: Foo = Foo {
bar: 0,
baz: Baz {
quux: 1
}
};

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

Ron似乎是要使用的 crate ,但看起来它不会为文字值生成 Rust 语法。

我是否误解了它的用途?

最佳答案

要按字面意思执行您要求的操作,您需要 write a custom Serde serializer .把所有的细节都弄好需要做一些工作。大多数文字(例如字符串、字符和数字)可以使用 proc_macro2::LiteralDisplay 实现序列化为有效的 Rust 文字。 ,它将负责转义特殊字符,在需要时使用 .0 为 float 添加后缀以及类似的细节。但是,看起来为结构实现序列化程序将取决于您。

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

关于rust - 如何使用 serde 将 Rust 对象序列化为 Rust 文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63241508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com