sdp-types 0.2.0

SDP (RFC 4566) types, parser and serializer
Documentation
use std::io::prelude::*;
use std::{env, fs, process};

fn main() -> process::ExitCode {
    let mut args = env::args();
    let _ = args.next().unwrap();
    let Some(file) = args.next() else {
        eprintln!("Usage: parse [file.sdp]");
        return process::ExitCode::FAILURE;
    };

    let mut file = match fs::File::open(file) {
        Ok(file) => file,
        Err(err) => {
            eprintln!("Failed to open file: {err}");
            return process::ExitCode::FAILURE;
        }
    };

    let mut content = Vec::new();
    match file.read_to_end(&mut content) {
        Ok(_) => {}
        Err(err) => {
            eprintln!("Failed to read file: {err}");
            return process::ExitCode::FAILURE;
        }
    };

    let sdp = match sdp_types::Session::parse(&content) {
        Ok(sdp) => sdp,
        Err(err) => {
            eprintln!("Failed to parse SDP: {err}");
            return process::ExitCode::FAILURE;
        }
    };

    println!("{sdp:#?}");

    process::ExitCode::SUCCESS
}