use std::{fs::File, io::BufWriter, io::Write}; use quick_xml::{self, Reader}; use xml_schema_generator::{self, Options}; const OUTFILEPATH: &str = "src/deserialize.rs"; fn main() { eprintln!("Build script starts"); let mut reader = Reader::from_file("./csr.xml").expect("Failed to open xml"); let root = xml_schema_generator::into_struct(&mut reader).expect("Failed to parse xml"); let struct_as_string = root.to_serde_struct(&Options::quick_xml_de()); println!("{}", struct_as_string); let outfile = File::create(OUTFILEPATH).expect("Failed to create out file"); let mut writer = BufWriter::new(outfile); writeln!(writer, "use serde::{{Serialize, Deserialize}};").unwrap(); writeln!(writer, "{}", struct_as_string).unwrap(); }