]> git.proxmox.com Git - rustc.git/blob - vendor/net2/src/sys/wasi/impls.rs
New upstream version 1.48.0~beta.8+dfsg1
[rustc.git] / vendor / net2 / src / sys / wasi / impls.rs
1 use std::os::wasi::io::{FromRawFd, AsRawFd};
2
3 use {TcpBuilder, UdpBuilder, FromInner, AsInner};
4 use socket::Socket;
5 use sys::{self, c::__wasi_fd_t};
6
7 impl FromRawFd for TcpBuilder {
8 unsafe fn from_raw_fd(fd: __wasi_fd_t) -> TcpBuilder {
9 let sock = sys::Socket::from_inner(fd);
10 TcpBuilder::from_inner(Socket::from_inner(sock))
11 }
12 }
13
14 impl AsRawFd for TcpBuilder {
15 fn as_raw_fd(&self) -> __wasi_fd_t {
16 // TODO: this unwrap() is very bad
17 self.as_inner().borrow().as_ref().unwrap().as_inner().raw() as __wasi_fd_t
18 }
19 }
20
21 impl FromRawFd for UdpBuilder {
22 unsafe fn from_raw_fd(fd: __wasi_fd_t) -> UdpBuilder {
23 let sock = sys::Socket::from_inner(fd);
24 UdpBuilder::from_inner(Socket::from_inner(sock))
25 }
26 }
27
28 impl AsRawFd for UdpBuilder {
29 fn as_raw_fd(&self) -> __wasi_fd_t {
30 // TODO: this unwrap() is very bad
31 self.as_inner().borrow().as_ref().unwrap().as_inner().raw() as __wasi_fd_t
32 }
33 }