3 use anyhow::{anyhow, bail, Result};
5 use rustdoc_json_types::{Crate, Id, FORMAT_VERSION};
7 pub(crate) mod item_kind;
22 fn main() -> Result<()> {
23 let path = env::args().nth(1).ok_or_else(|| anyhow!("no path given"))?;
24 let contents = fs::read_to_string(path)?;
25 let krate: Crate = serde_json::from_str(&contents)?;
26 assert_eq!(krate.format_version, FORMAT_VERSION);
28 let mut validator = validator::Validator::new(&krate);
29 validator.check_crate();
31 if !validator.errs.is_empty() {
32 for err in validator.errs {
34 ErrorKind::NotFound => eprintln!("{}: Not Found", err.id.0),
35 ErrorKind::Custom(msg) => eprintln!("{}: {}", err.id.0, msg),
38 bail!("Errors validating json");