use splinter_rs::{
CowSplinter, Encodable, PartitionRead, PartitionWrite, Splinter, SplinterRef, testutil::SetGen,
};
fn main() {
let mut setgen = SetGen::new(0xDEAD_BEEF);
let splinter = Splinter::from_iter(setgen.random_max(4096, 16384));
let value = splinter.select(9).unwrap();
let bytes = splinter.encode_to_bytes();
println!("Serialized splinter size: {} bytes", bytes.len());
println!("First 32 bytes of serialized splinter:");
for byte in bytes.iter().take(32) {
print!("{byte:02X} ");
}
println!();
let splinter_ref = SplinterRef::from_bytes(bytes).unwrap();
assert_eq!(splinter, splinter_ref);
assert!(splinter_ref.contains(value));
let mut splinter_cow = CowSplinter::from(splinter_ref);
splinter_cow.insert(123456);
assert!(splinter_cow.contains(123456));
println!("Success!");
}