#[path="support/index_image.rs"] mod index_image; fn build_index()->Vec { use index_image::Node; [ ("cat",1,Some(1),Some(2)), ("apple",1,Some(3),Some(4)), ("fox",4,Some(5),Some(6)), ("ant",1,None,None), ("bat",1,None,Some(7)), ("dog",1,None,None), ("hare",1,None,Some(8)), ("brown",1,None,None), ("quick",1,None,None) ] .into_iter().map(|(word,count,left,right)|Node {word:word.as_bytes().to_vec(),count,left,right}).collect() } use index_image::{encode_nodes,decode_nodes}; fn main() { let mut image=encode_nodes(&build_index()).unwrap(); let at = image.len() - 3; image[at] = 200; // corrupt an index in this Rust codec's image let decoded = decode_nodes(&image); let bok = decoded.is_ok(); let bad = decoded.unwrap_or_default(); println!("accepted: {bok}, nodes {}", bad.len()); assert!(!bok);assert!(bad.is_empty()); }