1use std::os::windows::io::{AsRawSocket, AsSocket};
2
3pub trait AsSysFd: AsSocket + AsRawSocket {}
5impl<H: AsSocket + AsRawSocket> AsSysFd for H {}
6
7#[cfg(feature = "async-io")]
8mod async_io {
9 use crate::{sys::AsSysFd, util::IOHandle};
10 use std::{
11 io::{Read, Write},
12 os::windows::io::{AsRawSocket, AsSocket, BorrowedSocket, RawSocket},
13 };
14
15 impl<H: Read + Write + AsSysFd + Send + 'static> AsSocket for IOHandle<H> {
16 fn as_socket(&self) -> BorrowedSocket<'_> {
17 self.0.as_socket()
18 }
19 }
20
21 impl<H: Read + Write + AsSysFd + Send + 'static> AsRawSocket for IOHandle<H> {
22 fn as_raw_socket(&self) -> RawSocket {
23 self.0.as_raw_socket()
24 }
25 }
26}