1 use crate::p2::SocketResult;
2 use crate::p2::bindings::{sockets::network::IpAddressFamily, sockets::tcp_create_socket};
3 use crate::sockets::{SocketAddressFamily, TcpSocket, WasiSocketsCtxView};
4 use wasmtime::component::Resource;
5 
6 impl tcp_create_socket::Host for WasiSocketsCtxView<'_> {
create_tcp_socket( &mut self, address_family: IpAddressFamily, ) -> SocketResult<Resource<TcpSocket>>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 
17 impl From<IpAddressFamily> for SocketAddressFamily {
from(family: IpAddressFamily) -> SocketAddressFamily18     fn from(family: IpAddressFamily) -> SocketAddressFamily {
19         match family {
20             IpAddressFamily::Ipv4 => Self::Ipv4,
21             IpAddressFamily::Ipv6 => Self::Ipv6,
22         }
23     }
24 }
25