1use std::os::unix::io::{AsFd, AsRawFd};
2
3pub trait AsSysFd: AsFd + AsRawFd {}
5impl<H: AsFd + AsRawFd> 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::unix::io::{AsFd, AsRawFd, BorrowedFd, RawFd},
13 };
14
15 impl<H: Read + Write + AsSysFd + Send + 'static> AsFd for IOHandle<H> {
16 fn as_fd(&self) -> BorrowedFd<'_> {
17 self.0.as_fd()
18 }
19 }
20
21 impl<H: Read + Write + AsSysFd + Send + 'static> AsRawFd for IOHandle<H> {
22 fn as_raw_fd(&self) -> RawFd {
23 self.as_fd().as_raw_fd()
24 }
25 }
26}