Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bytecodealliance
GitHub Repository: bytecodealliance/wasmtime
Path: blob/main/crates/wasi/src/p2/host/tcp_create_socket.rs
3069 views
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<'_> {
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 {
18
fn from(family: IpAddressFamily) -> SocketAddressFamily {
19
match family {
20
IpAddressFamily::Ipv4 => Self::Ipv4,
21
IpAddressFamily::Ipv6 => Self::Ipv6,
22
}
23
}
24
}
25
26