use base64::prelude::*;
use clap::Parser;
use rtc_stun::message::Message;
#[derive(Parser)]
#[command(name = "STUN decode")]
#[command(author = "Rusty Rain <y@ngr.tc>")]
#[command(version = "0.1.0")]
#[command(about = "An example of STUN decode", long_about = None)]
struct Cli {
#[arg(long)]
data: String,
}
fn main() {
let cli = Cli::parse();
let encoded_data = cli.data;
let decoded_data = match BASE64_STANDARD.decode(encoded_data) {
Ok(d) => d,
Err(e) => panic!("Unable to decode base64 value: {e}"),
};
let mut message = Message::new();
message.raw = decoded_data;
match message.decode() {
Ok(_) => println!("{message}"),
Err(e) => panic!("Unable to decode message: {e}"),
}
}