extern crate extindex;
extern crate serde;
use extindex::{Builder, Entry, Reader, SerdeWrapper};
#[derive(Ord, PartialOrd, Eq, PartialEq, Debug, serde::Serialize, serde::Deserialize)]
struct SomeStruct {
a: u32,
b: String,
}
fn main() {
let index_file = tempfile::NamedTempFile::new().unwrap();
let builder = Builder::new(index_file.path());
let entries = vec![Entry::new(
"my_key".to_string(),
SerdeWrapper(SomeStruct {
a: 123,
b: "my value".to_string(),
}),
)];
builder.build(entries.into_iter()).unwrap();
let reader = Reader::<String, SerdeWrapper<SomeStruct>>::open(index_file).unwrap();
assert!(reader.find(&"my_key".to_string()).unwrap().is_some());
assert!(reader.find(&"notfound".to_string()).unwrap().is_none());
}