Rust宏能解析JSON吗?

12

我希望可以通过使用JSON配置文件来定义常量值,就像这样:

enum E {
    ONE = get!(include_json!("a.json"), 0),
    TWO = get!(include_json!("a.json"), 1),
}

有没有办法在编译时解析JSON?


抱歉,我注意到我错误地定义了枚举,所以修改了定义。 - kriw
很好!那么我认为build.rs方法是可行的。将此定义隔离在可能的最小文件中,然后你就可以继续了。 - Matthieu M.
1个回答

10

有多种方法可以在编译时解析json。按涉及程度排序:

  • 使用build.rs脚本在构建期间生成源代码;当然,这技术上是有欺骗成分的,但它很容易实现。
  • 使用const函数与include_str!相结合,需要使用nightly版Rust,无法确保编译时引擎能够胜任。
  • 编写编译器插件,就像include_str!一样,也需要使用nightly版Rust,且接口可能会随着编译器的每个版本而改变。

因此,我建议您目前采用build.rs脚本方法,因为它既简单又稳定。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接