jsona-schema-validator 0.3.0

A jsonaschema validator implementation.
Documentation
use jsona::dom::{Keys, Node};
use jsona_schema_validator::JSONASchemaValidator;

fn main() {
    let mut args = std::env::args();
    let jsona_file = args
        .nth(1)
        .expect("Usage: query-schema <schema-jsona-file> [keys]");
    let keys = args.next();
    let jsona_file_path = std::path::Path::new(&jsona_file);
    let jsona_content =
        std::fs::read_to_string(jsona_file_path).expect("not found schema jsona file");
    let node: Node = jsona_content.parse().expect("invalid file");
    let validator = JSONASchemaValidator::try_from(&node).expect("invalid schema");
    let keys = match keys {
        Some(keys) => keys.parse().expect("invalid query path"),
        None => Keys::default(),
    };
    let result = serde_json::to_string_pretty(&validator.pointer(&keys)).unwrap();
    println!("{}", result);
}