use std::net::Ipv6Addr;
use three_word_networking::ipv6_compression::{Ipv6Compressor, Ipv6Category};
fn main() {
let ip = Ipv6Addr::new(0xfe80, 0, 0, 0, 0x0e00, 0, 0, 1);
println!("Original IP: {}", ip);
let compressed = Ipv6Compressor::compress(ip, None).unwrap();
println!("Category: {:?}", compressed.category);
println!("Compressed data: {:?}", compressed.compressed_data);
println!("Compressed data (hex): {:02x?}", compressed.compressed_data);
let (decompressed, _) = Ipv6Compressor::decompress(&compressed).unwrap();
println!("Decompressed IP: {}", decompressed);
println!("Match: {}", ip == decompressed);
}