use std::os::windows::io::{FromRawSocket, RawSocket, AsRawSocket};
use winapi::um::winsock2::SOCKET;
use {TcpBuilder, UdpBuilder, FromInner, AsInner};
use socket::Socket;
use sys;
impl FromRawSocket for TcpBuilder {
unsafe fn from_raw_socket(fd: RawSocket) -> TcpBuilder {
let sock = sys::Socket::from_inner(fd as SOCKET);
TcpBuilder::from_inner(Socket::from_inner(sock))
}
}
impl AsRawSocket for TcpBuilder {
fn as_raw_socket(&self) -> RawSocket {
self.as_inner().borrow().as_ref().unwrap().as_inner().raw() as RawSocket
}
}
impl FromRawSocket for UdpBuilder {
unsafe fn from_raw_socket(fd: RawSocket) -> UdpBuilder {
let sock = sys::Socket::from_inner(fd as SOCKET);
UdpBuilder::from_inner(Socket::from_inner(sock))
}
}
impl AsRawSocket for UdpBuilder {
fn as_raw_socket(&self) -> RawSocket {
self.as_inner().borrow().as_ref().unwrap().as_inner().raw() as RawSocket
}
}