1 use std::env;
2 use std::path::PathBuf;
3 use std::process::exit;
4 
5 use protobuf_parse::Parser;
6 
main()7 fn main() {
8     let args = env::args_os()
9         .skip(1)
10         .map(PathBuf::from)
11         .collect::<Vec<_>>();
12 
13     if args.len() != 2 {
14         eprintln!(
15             "usage: {} <input.proto> <include>",
16             env::args().next().unwrap()
17         );
18         exit(1);
19     }
20 
21     eprintln!(
22         "{} is not a part of public interface",
23         env::args().next().unwrap()
24     );
25 
26     assert!(args.len() >= 2);
27     let (input, includes) = args.split_at(1);
28     let t = Parser::new()
29         .pure()
30         .includes(includes)
31         .inputs(input)
32         .parse_and_typecheck()
33         .expect("parse_and_typecheck");
34     for fd in t.file_descriptors {
35         println!("{:#?}", fd);
36     }
37 }
38