easy-sqlite 0.4.1

Little sqlite framework
Documentation
use crate::{IDbRepo, IExecutor, INewDbRepo, ITable, MSQLConnection, SStr, SVec, TableManager};

struct Tbl;

impl ITable for Tbl {
    const NAME: SStr = "my_table";
    const COLUMNS: SVec<(SStr, SStr)> = &[
        ("id", "INTEGER PRIMARY KEY"),
        ("key", "TEXT"),
        ("value", "TEXT"),
    ];
    const INDEXES: SVec<SStr> = &["key"];
    const UNIQUE: SVec<SStr> = &["key"];
}

fn tbl_man() -> TableManager<MSQLConnection, Tbl> {
    let cnn = MSQLConnection::new(":memory:").unwrap();
    let man = TableManager::create(cnn);
    man.init().unwrap();
    man
}

#[test]
fn test_insert_select() {
    let man = tbl_man();
    man.connection
        .execute(
            &format!("INSERT INTO {t} (key, value) VALUES (?, ?)", t = Tbl::NAME,),
            &[&"\'", &"\""],
        )
        .unwrap();
    let str_pairs: Vec<(String, String)> = man
        .connection
        .get_many(
            &format!("SELECT key, value FROM {t}", t = Tbl::NAME),
            &[],
            |row| Ok((row.get(0)?, row.get(1)?)),
        )
        .unwrap();
    assert_eq!(str_pairs, vec![("\'".to_string(), "\"".to_string())])
}