dbstruct 0.6.0

Build a typed database by defining a struct
Documentation
#[dbstruct::dbstruct(db=sled)]
pub struct Test {
    #[dbstruct(Default)]
    the_field: u8,
    primes: Vec<u32>,
}

#[test]
fn push_persistance() {
    let dir = tempdir::TempDir::new("dbstruct_push_persistence").unwrap();
    let path = dir.path().join("db");

    let db = Test::new(&path).unwrap();

    db.the_field().set(&8).unwrap();

    let primes = [2, 3, 5, 7];
    db.primes().extend(&primes).unwrap();

    std::mem::drop(db);
    let db = Test::new(&path).unwrap();
    assert_eq!(8u8, db.the_field().get().unwrap());
    assert_eq!(Some(7), db.primes().pop().unwrap());
    assert_eq!(Some(5), db.primes().pop().unwrap());
}

#[test]
fn clear_persistence() {
    let dir = tempdir::TempDir::new("dbstruct_clear_persistence").unwrap();
    let path = dir.path().join("db");
    let db = Test::new(&path).unwrap();

    let primes = [2, 3, 5, 7];
    db.primes().extend(&primes).unwrap();
    db.primes().clear().unwrap();

    std::mem::drop(db);
    let db = Test::new(&path).unwrap();
    assert_eq!(None, db.primes().pop().unwrap());
    assert_eq!(0, db.primes().len());

    db.primes().push(&2).unwrap();
    assert_eq!(Some(2), db.primes().pop().unwrap());
}