1use std::os::unix::io::{FromRawFd, AsRawFd};
12use libc::c_int;
13
14use {TcpBuilder, UdpBuilder, FromInner, AsInner};
15use socket::Socket;
16use sys;
17
18impl FromRawFd for TcpBuilder {
19 unsafe fn from_raw_fd(fd: c_int) -> TcpBuilder {
20 let sock = sys::Socket::from_inner(fd);
21 TcpBuilder::from_inner(Socket::from_inner(sock))
22 }
23}
24
25impl AsRawFd for TcpBuilder {
26 fn as_raw_fd(&self) -> c_int {
27 self.as_inner().borrow().as_ref().unwrap().as_inner().raw()
29 }
30}
31
32impl FromRawFd for UdpBuilder {
33 unsafe fn from_raw_fd(fd: c_int) -> UdpBuilder {
34 let sock = sys::Socket::from_inner(fd);
35 UdpBuilder::from_inner(Socket::from_inner(sock))
36 }
37}
38
39impl AsRawFd for UdpBuilder {
40 fn as_raw_fd(&self) -> c_int {
41 self.as_inner().borrow().as_ref().unwrap().as_inner().raw()
43 }
44}