wasmtime_wasi/p3/sockets/host/
ip_name_lookup.rs1use crate::p3::bindings::sockets::ip_name_lookup::{ErrorCode, Host, HostWithStore};
2use crate::p3::bindings::sockets::types;
3use crate::p3::sockets::WasiSockets;
4use crate::sockets::WasiSocketsCtxView;
5use crate::sockets::ip_name_lookup::resolve_addresses;
6use wasmtime::component::Accessor;
7
8impl<U> HostWithStore<U> for WasiSockets {
9 async fn resolve_addresses(
10 store: &Accessor<U, Self>,
11 name: String,
12 ) -> wasmtime::Result<Result<Vec<types::IpAddress>, ErrorCode>> {
13 let fut = store.with(|mut view| resolve_addresses(&view.get().ctx, name));
14 Ok(match fut.await {
15 Ok(addrs) => Ok(addrs.into_iter().map(|addr| addr.into()).collect()),
16 Err(err) => Err(err.into()),
17 })
18 }
19}
20
21impl Host for WasiSocketsCtxView<'_> {}