Skip to main content

wasmtime_wasi/p2/host/
instance_network.rs

1use crate::p2::bindings::sockets::instance_network;
2use crate::p2::network::Network;
3use crate::sockets::WasiSocketsCtxView;
4use wasmtime::component::Resource;
5
6impl instance_network::Host for WasiSocketsCtxView<'_> {
7    fn instance_network(&mut self) -> Result<Resource<Network>, wasmtime::Error> {
8        let network = Network { _priv: () };
9        let network = self.table.push(network)?;
10        Ok(network)
11    }
12}
13
14mod named {
15    use crate::p2::bindings::named_imports::wasi::sockets::instance_network;
16    use crate::p2::network::Network;
17    use crate::sockets::WasiSocketsNamedView;
18    use crate::{NamedId, WasiCtxNamedView};
19    use wasmtime::component::Resource;
20
21    impl<T> instance_network::Host for WasiCtxNamedView<'_, T>
22    where
23        T: WasiSocketsNamedView,
24    {
25        fn instance_network(&mut self, id: NamedId) -> Result<Resource<Network>, wasmtime::Error> {
26            super::instance_network::Host::instance_network(&mut self.0.sockets(id))
27        }
28    }
29}