MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / main

Function main

crates/test-programs/src/bin/keyvalue_main.rs:3–44  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 8

list_keysMethod · 0.80
as_bytesMethod · 0.80
unwrapMethod · 0.45
setMethod · 0.45
getMethod · 0.45
deleteMethod · 0.45
to_stringMethod · 0.45
to_vecMethod · 0.45

Tested by

no test coverage detected