Skip to main content

trailbase_wasm/
kv.rs

1pub use crate::wit::wasi::keyvalue::store::Error;
2use crate::wit::wasi::keyvalue::store::{Bucket, open as wit_open};
3
4pub fn open() -> Result<Bucket, String> {
5  return wit_open("").map_err(|err| err.to_string());
6}
7
8pub struct Store {
9  bucket: Bucket,
10}
11
12impl Store {
13  pub fn open() -> Result<Self, String> {
14    return Ok(Self { bucket: open()? });
15  }
16
17  pub fn get(&self, key: &str) -> Result<Option<Vec<u8>>, Error> {
18    return self.bucket.get(key);
19  }
20
21  pub fn set(&mut self, key: &str, value: &[u8]) -> Result<(), Error> {
22    return self.bucket.set(key, value);
23  }
24
25  pub fn delete(&mut self, key: &str) -> Result<(), Error> {
26    return self.bucket.delete(key);
27  }
28
29  pub fn exists(&mut self, key: &str) -> Result<bool, Error> {
30    return self.bucket.exists(key);
31  }
32}