use schemars::schema_for;
use crate::config::Config;
#[path = "src/config.rs"]
mod config;
fn main() {
let version_meta = rustc_version::version_meta().unwrap();
println!(
"cargo:rustc-env=RUSTC_VERSION={}",
version_meta.short_version_string
);
let schema = serde_json::to_value(schema_for!(Config)).unwrap();
let schema = jsonschema::JSONSchema::compile(&schema).unwrap();
println!("{schema:#?}");
let config = std::fs::read_to_string("config.json5").unwrap();
let config: serde_json::Value = serde_json::from_str(&config).unwrap();
if let Err(es) = schema.validate(&config) {
let es = es.map(|e| format!("{}", e)).collect::<Vec<_>>().join("\n");
panic!("config.json5 schema validation error: {}", es);
};
}