use anyhow::Result;
use clap::Parser;
use std::fmt::Debug;
use std::io::Write;
use dnstap_utils::util::fmt_dns_message;
#[derive(Parser, Debug)]
struct Opts {
hex_msg_bytes: String,
}
fn main() -> Result<()> {
let mut opts = Opts::parse();
opts.hex_msg_bytes.retain(|c| !c.is_whitespace());
let raw_msg_bytes = hex::decode(&opts.hex_msg_bytes)?;
let mut fmt_buffer = String::with_capacity(2048);
fmt_dns_message(&mut fmt_buffer, "", &raw_msg_bytes);
std::io::stdout().write_all(fmt_buffer.as_bytes())?;
Ok(())
}