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

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

有什么办法可以在编译时解析JSON?

最佳答案

有多种在编译时解析json的方法。按照“参与”的顺序:

  • 在构建过程中使用 build.rs script生成您的源代码;当然是技术上的作弊,但这很简单
  • const 结合使用include_str!函数,这将需要每晚进行一次,但我不确定当前的编译时引擎是否足够强大,即
  • 编写了一个编译器插件,即include_str!,它也需要每晚进行一次,并且接口(interface)可能会随着编译器的每个发行版而变化。

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

    09-25 19:21