| 1 | use test_programs::wasi::keyvalue::{atomics, batch, store}; |
| 2 | |
| 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 | } |