wasmtime_wasi/p2/host/
tcp_create_socket.rs1use crate::p2::SocketResult;
2use crate::p2::bindings::{sockets::network::IpAddressFamily, sockets::tcp_create_socket};
3use crate::sockets::{SocketAddressFamily, TcpSocket, WasiSocketsCtxView};
4use wasmtime::component::Resource;
5
6impl tcp_create_socket::Host for WasiSocketsCtxView<'_> {
7 fn create_tcp_socket(
8 &mut self,
9 address_family: IpAddressFamily,
10 ) -> SocketResult<Resource<TcpSocket>> {
11 let socket = TcpSocket::new(self.ctx, address_family.into())?;
12 let socket = self.table.push(socket)?;
13 Ok(socket)
14 }
15}
16
17impl From<IpAddressFamily> for SocketAddressFamily {
18 fn from(family: IpAddressFamily) -> SocketAddressFamily {
19 match family {
20 IpAddressFamily::Ipv4 => Self::Ipv4,
21 IpAddressFamily::Ipv6 => Self::Ipv6,
22 }
23 }
24}