structsy 0.5.2

Simple single file structs database
Documentation
use structsy::{Structsy, StructsyError, StructsyTx};
use structsy_derive::Persistent;

#[derive(Persistent, Debug, PartialEq)]
struct MyData {
    #[index(mode = "cluster")]
    name: String,
    address: String,
}
impl MyData {
    fn new(name: &str, address: &str) -> MyData {
        MyData {
            name: name.to_string(),
            address: address.to_string(),
        }
    }
}

fn main() -> Result<(), StructsyError> {
    let db = Structsy::open("example_basic.db")?;
    db.define::<MyData>()?;

    let my_data = MyData::new("Structsy", "https://gitlab.com/tglman/structsy");
    let mut tx = db.begin()?;
    let id = tx.insert(&my_data)?;
    tx.commit()?;

    let mut iter = db.scan::<MyData>()?;
    let (_id, data) = iter.next().unwrap();
    assert_eq!(data.name, "Structsy".to_string());

    let mut tx = db.begin()?;
    tx.delete(&id)?;
    tx.commit()?;

    let mut iter = db.scan::<MyData>()?;
    assert_eq!(None, iter.next());

    Ok(())
}