[−][src]Crate typedb
Simple persistent generic HashMap/Key-value store, using file locking to limit writing between threads.
This is in a beta state at the moment.
Basic usage:
use typedb::{ KV, Value }; fn main() { let mut test_store = KV::<String, Value>::new("./basic.cab").unwrap(); let _ = test_store.insert("key".to_string(), Value::String("value".to_string())); println!("{:?}", test_store.get(&"key".to_string())); let _ = test_store.remove(&"key".to_string()); }
Usage with user defined Key and Value types:
use typedb::{KV, key, value}; use serde_derive::{ Serialize, Deserialize }; key!( enum MyKey { String(String), Int(i32), }); value!( enum MyValue { String(String), Int(i32), }); fn main() { let mut test_store = KV::<MyKey, MyValue>::new("./types.cab").unwrap(); let _ = test_store.insert(MyKey::Int(1i32), MyValue::String("value".to_string())); println!("{:?}", test_store.get(&MyKey::Int(1i32))); let _ = test_store.remove(&MyKey::Int(1i32)); }
Modules
macros | Macros for simplifying custom key and value types definition |
Macros
key | Macro for simplifying custom Key type definition |
value | Macro for simplifying custom Value type definition |
Structs
KV | The type that represents the key-value store |
Enums
Value | A default value type to use with KV |