build.rs 465 B

123456789101112131415161718192021
  1. use std::{
  2. env::current_dir,
  3. error::Error,
  4. fs::File,
  5. io::{BufWriter, Write},
  6. };
  7. mod config_definition;
  8. pub fn main() -> Result<(), Box<dyn Error>> {
  9. let schema = schemars::schema_for!(config_definition::Config);
  10. let schema_file_path = current_dir()?.join("schema.json");
  11. let mut schema_file = BufWriter::new(File::create(&schema_file_path)?);
  12. write!(
  13. schema_file,
  14. "{}",
  15. serde_json::to_string_pretty(&schema).unwrap()
  16. )?;
  17. Ok(())
  18. }