microrm 0.6.3

Lightweight ORM using sqlite as a backend
Documentation
use microrm::prelude::*;
use test_log::test;

mod common;

#[derive(Clone, Entity, PartialEq)]
struct Container {
    value: usize,
}

#[derive(Schema)]
struct Schema {
    containers: microrm::IDMap<Container>,
}

#[test]
fn order_ascending() {
    let (pool, db): (_, Schema) = common::open_test_db!();
    {
        let mut txn = pool.start().unwrap();

        db.containers
            .insert(&mut txn, Container { value: 5 })
            .unwrap();
        db.containers
            .insert(&mut txn, Container { value: 4 })
            .unwrap();
        db.containers
            .insert(&mut txn, Container { value: 9 })
            .unwrap();
        db.containers
            .insert(&mut txn, Container { value: 7 })
            .unwrap();

        txn.commit().unwrap();
    }
    {
        let mut txn = pool.start().unwrap();

        assert_eq!(
            db.containers
                .order_by_asc(Container::Value)
                .get(&mut txn)
                .unwrap(),
            vec![
                Container { value: 4 },
                Container { value: 5 },
                Container { value: 7 },
                Container { value: 9 }
            ],
        );
    }
}

#[test]
fn order_descending() {
    let (pool, db): (_, Schema) = common::open_test_db!();
    {
        let mut txn = pool.start().unwrap();

        db.containers
            .insert(&mut txn, Container { value: 5 })
            .unwrap();
        db.containers
            .insert(&mut txn, Container { value: 4 })
            .unwrap();
        db.containers
            .insert(&mut txn, Container { value: 9 })
            .unwrap();
        db.containers
            .insert(&mut txn, Container { value: 7 })
            .unwrap();

        txn.commit().unwrap();
    }
    {
        let mut txn = pool.start().unwrap();

        assert_eq!(
            db.containers
                .order_by_desc(Container::Value)
                .get(&mut txn)
                .unwrap(),
            vec![
                Container { value: 9 },
                Container { value: 7 },
                Container { value: 5 },
                Container { value: 4 }
            ],
        );
    }
}