Skip to content

Commit a36e5c5

Browse files
committed
chore(kv): impl conversion traits for bindings
Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
1 parent 6091716 commit a36e5c5

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

  • crates/wasi-keyvalue/src

crates/wasi-keyvalue/src/lib.rs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,41 @@ wit_bindgen_wrpc::generate!({
22
world: "proxy",
33
generate_all,
44
});
5+
6+
// TODO: Generate a single type for both imports and exports
7+
8+
impl From<wasi::keyvalue::store::Error> for exports::wasi::keyvalue::store::Error {
9+
fn from(v: wasi::keyvalue::store::Error) -> Self {
10+
match v {
11+
wasi::keyvalue::store::Error::NoSuchStore => Self::NoSuchStore,
12+
wasi::keyvalue::store::Error::AccessDenied => Self::AccessDenied,
13+
wasi::keyvalue::store::Error::Other(err) => Self::Other(err),
14+
}
15+
}
16+
}
17+
18+
impl From<exports::wasi::keyvalue::store::Error> for wasi::keyvalue::store::Error {
19+
fn from(v: exports::wasi::keyvalue::store::Error) -> Self {
20+
match v {
21+
exports::wasi::keyvalue::store::Error::NoSuchStore => Self::NoSuchStore,
22+
exports::wasi::keyvalue::store::Error::AccessDenied => Self::AccessDenied,
23+
exports::wasi::keyvalue::store::Error::Other(err) => Self::Other(err),
24+
}
25+
}
26+
}
27+
28+
impl From<wasi::keyvalue::store::KeyResponse> for exports::wasi::keyvalue::store::KeyResponse {
29+
fn from(
30+
wasi::keyvalue::store::KeyResponse { keys, cursor }: wasi::keyvalue::store::KeyResponse,
31+
) -> Self {
32+
Self { keys, cursor }
33+
}
34+
}
35+
36+
impl From<exports::wasi::keyvalue::store::KeyResponse> for wasi::keyvalue::store::KeyResponse {
37+
fn from(
38+
exports::wasi::keyvalue::store::KeyResponse { keys, cursor }: exports::wasi::keyvalue::store::KeyResponse,
39+
) -> Self {
40+
Self { keys, cursor }
41+
}
42+
}

0 commit comments

Comments
 (0)