Expand description
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