Skip to content

Commit d5ada96

Browse files
authored
Merge pull request #306 from yihuang/async_smol
implement AsRawFd
2 parents 38a37bc + 59dec85 commit d5ada96

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/lib.rs

+18
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ use std::ffi;
99
use std::fmt;
1010
use std::marker::PhantomData;
1111
use std::os::raw::c_void;
12+
#[cfg(unix)]
13+
use std::os::unix::io::{AsRawFd, RawFd as UnixRawFd};
14+
#[cfg(windows)]
15+
use std::os::windows::io::{AsRawSocket, RawSocket};
1216
use std::result;
1317
use std::string::FromUtf8Error;
1418
use std::sync::Arc;
@@ -480,6 +484,20 @@ impl Drop for Socket {
480484
}
481485
}
482486

487+
#[cfg(unix)]
488+
impl AsRawFd for Socket {
489+
fn as_raw_fd(&self) -> UnixRawFd {
490+
self.get_fd().unwrap() as UnixRawFd
491+
}
492+
}
493+
494+
#[cfg(windows)]
495+
impl AsRawSocket for Socket {
496+
fn as_raw_socket(&self) -> RawSocket {
497+
self.get_fd().unwrap() as RawSocket
498+
}
499+
}
500+
483501
macro_rules! sockopt_getter {
484502
( $(#[$meta:meta])*
485503
pub $getter:ident => $constant_name:ident as $ty:ty

0 commit comments

Comments
 (0)