1 use test_programs::wasi::keyvalue::{atomics, batch, store};
2 
main()3 fn main() {
4     let bucket = store::open("").unwrap();
5 
6     // we have preset this `atomics_key` with value 5
7     assert_eq!(atomics::increment(&bucket, "atomics_key", 1).unwrap(), 6);
8 
9     let resp = bucket.list_keys(None).unwrap();
10     assert_eq!(resp.keys, vec!["atomics_key".to_string()]);
11 
12     bucket.set("hello", "world".as_bytes()).unwrap();
13 
14     let v = bucket.get("hello").unwrap();
15     assert_eq!(String::from_utf8(v.unwrap()).unwrap(), "world");
16 
17     assert_eq!(bucket.exists("hello").unwrap(), true);
18     bucket.delete("hello").unwrap();
19     assert_eq!(bucket.exists("hello").unwrap(), false);
20 
21     batch::set_many(
22         &bucket,
23         &[
24             ("a1".to_string(), "v1".as_bytes().to_vec()),
25             ("b1".to_string(), "v1".as_bytes().to_vec()),
26             ("c1".to_string(), "v1".as_bytes().to_vec()),
27         ],
28     )
29     .unwrap();
30     batch::delete_many(&bucket, &["a1".to_string(), "c1".to_string()]).unwrap();
31     let values = batch::get_many(
32         &bucket,
33         &["a1".to_string(), "b1".to_string(), "c1".to_string()],
34     )
35     .unwrap();
36     assert_eq!(
37         values,
38         vec![
39             None,
40             Some(("b1".to_string(), "v1".as_bytes().to_vec())),
41             None
42         ]
43     );
44 }
45