Rust宏可以解析JSON吗?

kri*_*riw 11 json rust

我想通过使用JSON配置文件来定义常量值,如下所示:

enum E {
    ONE = get!(include_json!("a.json"), 0),
    TWO = get!(include_json!("a.json"), 1),
}
Run Code Online (Sandbox Code Playgroud)

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

Mat*_* M. 10

在编译时有多种方法可以解析json.按照"参与"的顺序:

  • 使用build.rs脚本在构建期间生成源代码; 当然,它在技术上是作弊,但它很容易,
  • 使用一个const函数结合include_str!,它需要每晚,我不确定编译时引擎是否足够强大,
  • 编写一个编译器插件,就是这样include_str!,它也需要每晚,并且接口可能会随着编译器的每个版本而改变.

因此,我建议您build.rs现在使用脚本方法,因为它既简单又稳定.