query_schema/
query-schema.rs1use jsona::dom::{Keys, Node};
2use jsona_schema_validator::JSONASchemaValidator;
3
4fn main() {
5 let mut args = std::env::args();
6 let jsona_file = args
7 .nth(1)
8 .expect("Usage: query-schema <schema-jsona-file> [keys]");
9 let keys = args.next();
10 let jsona_file_path = std::path::Path::new(&jsona_file);
11 let jsona_content =
12 std::fs::read_to_string(jsona_file_path).expect("not found schema jsona file");
13 let node: Node = jsona_content.parse().expect("invalid file");
14 let validator = JSONASchemaValidator::try_from(&node).expect("invalid schema");
15 let keys = match keys {
16 Some(keys) => keys.parse().expect("invalid query path"),
17 None => Keys::default(),
18 };
19 let result = serde_json::to_string_pretty(&validator.pointer(&keys)).unwrap();
20 println!("{}", result);
21}