1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
use libriakv::RiaKV; #[cfg(target_os = "windows")] const USAGE: &str = " CLI client for RiaKV key value store. Usage: riakv_mem.exe FILE get KEY riakv_mem.exe FILE delete KEY riakv_mem.exe FILE insert KEY VALUE riakv_mem.exe FILE update KEY VALUE "; #[cfg(target_os = "linux")] const USAGE: &str = " CLI client for RiaKV key value store. Usage: riakv_mem FILE get KEY riakv_mem FILE delete KEY riakv_mem FILE insert KEY VALUE riakv_mem FILE update KEY VALUE "; fn main() { let args: Vec<String> = std::env::args().collect(); let fname = args.get(1).expect(&USAGE); let action = args.get(2).expect(&USAGE).as_ref(); let key = args.get(3).expect(&USAGE).as_ref(); let maybe_value = args.get(4); let path = std::path::Path::new(fname); let mut store = RiaKV::open_from_file_at_path(path).expect("unable to open file"); store.load().expect("unable to load data"); match action { "get" => match store.get(key).unwrap() { None => eprintln!("{:?} not found", key), Some(value) => println!("{:?}", value), }, "delete" => store.delete(key).unwrap(), "insert" => { let value = maybe_value.expect(&USAGE).as_ref(); store.insert(key, value).unwrap() } "update" => { let value = maybe_value.expect(&USAGE).as_ref(); store.update(key, value).unwrap() } _ => eprintln!("{}", &USAGE), } }