我希望可以通过使用JSON配置文件来定义常量值,就像这样:
enum E {
ONE = get!(include_json!("a.json"), 0),
TWO = get!(include_json!("a.json"), 1),
}
有没有办法在编译时解析JSON?
有多种方法可以在编译时解析json。按涉及程度排序:
build.rs
脚本在构建期间生成源代码;当然,这技术上是有欺骗成分的,但它很容易实现。const
函数与include_str!
相结合,需要使用nightly版Rust,无法确保编译时引擎能够胜任。include_str!
一样,也需要使用nightly版Rust,且接口可能会随着编译器的每个版本而改变。因此,我建议您目前采用build.rs
脚本方法,因为它既简单又稳定。
build.rs
方法是可行的。将此定义隔离在可能的最小文件中,然后你就可以继续了。 - Matthieu M.