-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbasic_map.rs
More file actions
30 lines (23 loc) · 935 Bytes
/
Copy pathbasic_map.rs
File metadata and controls
30 lines (23 loc) · 935 Bytes
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
use prolly::{Config, MemStore, Prolly};
fn main() -> Result<(), prolly::Error> {
let prolly = Prolly::new(MemStore::new(), Config::default());
let tree = prolly.create();
let tree = prolly.put(&tree, b"user:001".to_vec(), b"Ada".to_vec())?;
let tree = prolly.put(&tree, b"user:002".to_vec(), b"Grace".to_vec())?;
let tree = prolly.put(&tree, b"user:003".to_vec(), b"Linus".to_vec())?;
assert_eq!(prolly.get(&tree, b"user:001")?, Some(b"Ada".to_vec()));
let tree = prolly.delete(&tree, b"user:003")?;
assert_eq!(prolly.get(&tree, b"user:003")?, None);
let users = prolly
.range(&tree, b"user:", Some(b"user;"))?
.collect::<Result<Vec<_>, _>>()?;
assert_eq!(
users,
vec![
(b"user:001".to_vec(), b"Ada".to_vec()),
(b"user:002".to_vec(), b"Grace".to_vec()),
]
);
println!("{} users in range", users.len());
Ok(())
}