use binlog::{Entry, Error, Range, RangeableStore, SqliteStore, Store};
use std::borrow::Cow;
use string_cache::DefaultAtom as Atom;
fn main() -> Result<(), Error> {
let store = SqliteStore::new("example.db", None)?;
for i in 1..11u8 {
let entry = Entry::new_with_timestamp(i as i64, Atom::from("sqlite_example"), vec![i]);
store.push(Cow::Owned(entry))?;
}
let range = store.range(.., Option::<String>::None)?;
println!("initial count: {}", range.count()?);
for entry in range.iter()? {
println!("entry: {:?}", entry?);
}
store.range(4..=6, Some(Atom::from("sqlite_example")))?.remove()?;
let range = store.range(5.., Some(Atom::from("sqlite_example")))?;
println!("count after range deletion: {}", range.count()?);
for entry in range.iter()? {
println!("entry: {:?}", entry?);
}
Ok(())
}