pub mod db;
use crate::db::kv;
use std::{error::Error, path::Path, result::Result };
use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
fn main() -> Result<(), Box<dyn Error>> {
let path = Path::new("D:\\projects\\RUST\\blazeup\\db");
kv::reset(Some(&path))?;
kv::init(Some(&path))?;
let bucket = "Japanese-Machines";
let vehicles = kv::Record{
name:"models".into(), values: vec![
kv::Types::String("Toyota".into()),
kv::Types::String("Subaru".into()),
]
};
let tvs = kv::Record{
name:"models".into(), values: vec![
kv::Types::String("Sony".into()),
kv::Types::String("Sharp".into()),
]
};
kv::set(&bucket, "electronics-tvs", tvs.clone())?;
let radios = kv::Record{
name:"old-models".into(), values: vec![
kv::Types::String("Hitachi".into()),
kv::Types::String("Toshiba".into()),
]
};
kv::set(&bucket, "electronics-radios", radios.clone())?;
let ts: HashMap<_, _> = kv::tx! {
"tx-vehicles" => vehicles ,
"tx-radios" => radios ,
"tx-tvs" => tvs
};
kv::transaction(bucket, ts)?;
let value = kv::get(&bucket, "electronics-radios");
println!("{:#?}", value);
let filter = kv::Filter{
key : Some("electronics*"),
name:Some("old*")
};
let all = kv::get_all(&bucket, Some(filter));
println!("{:#?}", all);
Ok(())
}