@@ -0,0 +1,30 @@
1+extern crate serde_json;
2+use std::fs::File;
3+use std::io::Read;
4+use std::env;
5+
6+fn main() {
7+ println!("Hello, world!");
8+
9+ let args: Vec<_> = env::args().collect();
10+ if args.len() != 2 {
11+ println!("Usage: {} file.json", args[0]);
12+ std::process::exit(1);
13+ }
14+
15+ let ref path = args[1];
16+ let mut s = String::new();
17+ let mut f = File::open(path).expect("Unable to open file");
18+ //f.read_to_string(&mut s).expect("Unable to read string");
19+ //println!("{}", s);
20+
21+ match f.read_to_string(&mut s) {
22+ Err(_) => std::process::exit(1),
23+ Ok(_) => println!("{}", s),
24+ }
25+
26+ match serde_json::from_str::<serde_json::Value>(&s) {
27+ Ok(_) => std::process::exit(0),
28+ Err(_) => std::process::exit(1)
29+ };
30+}