use spvirit_codec::{PvaPacket, PvaPacketCommand};
fn main() {
let raw: &[u8] = &[
0xCA, 0x02, 0x00, 0x01, 0x09, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, ];
let mut packet = PvaPacket::new(raw);
println!("Header:");
println!(" magic: 0x{:02X}", packet.header.magic);
println!(" version: {}", packet.header.version);
println!(" command: {}", packet.header.command);
println!(" payload: {} bytes", packet.header.payload_length);
println!(
" endian: {}",
if packet.header.flags.is_msb {
"big"
} else {
"little"
}
);
if let Some(cmd) = packet.decode_payload() {
match cmd {
PvaPacketCommand::ConnectionValidation(cv) => {
println!("\nConnectionValidation:");
println!(" buffer_size: {}", cv.buffer_size);
println!(" intro_reg: {}", cv.introspection_registry_size);
println!(" qos: {}", cv.qos);
println!(" authz: {:?}", cv.authz);
}
other => println!("Decoded: {other:?}"),
}
} else {
eprintln!("Failed to decode payload");
}
}