simpledb 0.1.7

NoSQL embedded database on top of RocksDB
Documentation
use std::env::temp_dir;
use std::time::{SystemTime, UNIX_EPOCH};

use rand::Rng;

use simpledb::Database;

#[allow(dead_code)]
pub fn get_random_database_path() -> String {
    let r: i32 = rand::thread_rng().gen();
    let path = temp_dir().as_path().join(format!(
        "test-simpledb-rs-{}-{}",
        SystemTime::now()
            .duration_since(UNIX_EPOCH)
            .unwrap()
            .as_millis(),
        r
    ));
    String::from(path.to_str().unwrap())
}

#[allow(dead_code)]
pub fn open_database() -> Database {
    let path = get_random_database_path();
    Database::destroy(&path).unwrap();
    open_database_with_path(&path)
}

#[allow(dead_code)]
pub fn open_database_with_path(path: &str) -> Database {
    let db = Database::open(path).unwrap();
    println!("open database: {}", db.path);
    db
}

#[allow(dead_code)]
pub fn dump_database_meta(db: &Database) {
    println!("dump_database_meta:");
    db.for_each_key(|k, m| {
        println!("key: {:?}\t value: {:?}", k, m);
        true
    })
    .unwrap();
}

#[allow(dead_code)]
pub fn dump_database_data(db: &Database, key: &str) {
    println!("dump_database_data:");
    db.for_each_data(key, None, |k, m| {
        println!("key: {:?}\t value: {:?}", k, m);
        true
    })
    .unwrap();
}

#[allow(dead_code)]
pub fn vec_to_str(vec: Vec<u8>) -> String {
    String::from_utf8(vec).unwrap()
}