1use std::io::prelude::*;
2use std::{env, fs, process};
3
4fn main() -> process::ExitCode {
5 let mut args = env::args();
6 let _ = args.next().unwrap();
7 let Some(file) = args.next() else {
8 eprintln!("Usage: parse [file.sdp]");
9 return process::ExitCode::FAILURE;
10 };
11
12 let mut file = match fs::File::open(file) {
13 Ok(file) => file,
14 Err(err) => {
15 eprintln!("Failed to open file: {err}");
16 return process::ExitCode::FAILURE;
17 }
18 };
19
20 let mut content = Vec::new();
21 match file.read_to_end(&mut content) {
22 Ok(_) => {}
23 Err(err) => {
24 eprintln!("Failed to read file: {err}");
25 return process::ExitCode::FAILURE;
26 }
27 };
28
29 let sdp = match sdp_types::Session::parse(&content) {
30 Ok(sdp) => sdp,
31 Err(err) => {
32 eprintln!("Failed to parse SDP: {err}");
33 return process::ExitCode::FAILURE;
34 }
35 };
36
37 println!("{sdp:#?}");
38
39 process::ExitCode::SUCCESS
40}