wasi_passthrough_blobstore/
container.rs1use crate::bindings::exports;
2use crate::bindings::exports::wasi::blobstore::types::OutgoingValueBorrow;
3use crate::bindings::wasi::blobstore::container::{Container, StreamObjectNames};
4use crate::bindings::wasi::blobstore::types::Error;
5
6impl From<exports::wasi::blobstore::container::StreamObjectNames> for StreamObjectNames {
7 fn from(value: exports::wasi::blobstore::container::StreamObjectNames) -> Self {
8 value.into_inner()
9 }
10}
11
12impl From<StreamObjectNames> for exports::wasi::blobstore::container::StreamObjectNames {
13 fn from(value: StreamObjectNames) -> Self {
14 Self::new(value)
15 }
16}
17
18impl From<exports::wasi::blobstore::container::Container> for Container {
19 fn from(value: exports::wasi::blobstore::container::Container) -> Self {
20 value.into_inner()
21 }
22}
23
24impl From<Container> for exports::wasi::blobstore::container::Container {
25 fn from(value: Container) -> Self {
26 Self::new(value)
27 }
28}
29
30impl exports::wasi::blobstore::container::GuestContainer for Container {
31 fn name(&self) -> Result<String, Error> {
32 Self::name(self)
33 }
34
35 fn info(&self) -> Result<exports::wasi::blobstore::types::ContainerMetadata, Error> {
36 let res = Self::info(self)?;
37 Ok(res.into())
38 }
39
40 fn get_data(
41 &self,
42 name: String,
43 start: u64,
44 end: u64,
45 ) -> Result<exports::wasi::blobstore::types::IncomingValue, Error> {
46 let res = Self::get_data(self, &name, start, end)?;
47 Ok(res.into())
48 }
49
50 fn write_data(&self, name: String, data: OutgoingValueBorrow<'_>) -> Result<(), Error> {
51 Self::write_data(self, &name, data.get())
52 }
53
54 fn list_objects(
55 &self,
56 ) -> Result<exports::wasi::blobstore::container::StreamObjectNames, Error> {
57 let res = Self::list_objects(self)?;
58 Ok(res.into())
59 }
60
61 fn delete_object(&self, name: String) -> Result<(), Error> {
62 Self::delete_object(self, &name)
63 }
64
65 fn delete_objects(&self, names: Vec<String>) -> Result<(), Error> {
66 Self::delete_objects(self, &names)
67 }
68
69 fn has_object(&self, name: String) -> Result<bool, Error> {
70 Self::has_object(self, &name)
71 }
72
73 fn object_info(
74 &self,
75 name: String,
76 ) -> Result<exports::wasi::blobstore::types::ObjectMetadata, Error> {
77 let res = Self::object_info(self, &name)?;
78 Ok(res.into())
79 }
80
81 fn clear(&self) -> Result<(), Error> {
82 Self::clear(self)
83 }
84}
85
86impl exports::wasi::blobstore::container::GuestStreamObjectNames for StreamObjectNames {
87 fn read_stream_object_names(&self, len: u64) -> Result<(Vec<String>, bool), Error> {
88 Self::read_stream_object_names(self, len)
89 }
90
91 fn skip_stream_object_names(&self, num: u64) -> Result<(u64, bool), Error> {
92 Self::skip_stream_object_names(self, num)
93 }
94}
95
96impl exports::wasi::blobstore::container::Guest for () {
97 type Container = Container;
98 type StreamObjectNames = StreamObjectNames;
99}