wasmtime_wasi/p2/host/
udp_create_socket.rs

1use crate::p2::SocketResult;
2use crate::p2::bindings::{sockets::network::IpAddressFamily, sockets::udp_create_socket};
3use crate::sockets::UdpSocket;
4use crate::sockets::WasiSocketsCtxView;
5use wasmtime::component::Resource;
6
7impl udp_create_socket::Host for WasiSocketsCtxView<'_> {
8    fn create_udp_socket(
9        &mut self,
10        address_family: IpAddressFamily,
11    ) -> SocketResult<Resource<UdpSocket>> {
12        let socket = UdpSocket::new(self.ctx, address_family.into())?;
13        let socket = self.table.push(socket)?;
14        Ok(socket)
15    }
16}