Skip to content

Commit 9d8f480

Browse files
committed
Implement AsFd for Socket
1 parent 2bf316f commit 9d8f480

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

gio/src/socket.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Take a look at the license at the top of the repository in the LICENSE file.
22

33
#[cfg(unix)]
4-
use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, OwnedFd, RawFd};
4+
use std::os::unix::io::{AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd};
55
#[cfg(windows)]
66
use std::os::windows::io::{AsRawSocket, FromRawSocket, IntoRawSocket, RawSocket};
77
#[cfg(feature = "v2_60")]
@@ -55,6 +55,17 @@ impl AsRawFd for Socket {
5555
}
5656
}
5757

58+
#[cfg(unix)]
59+
#[cfg_attr(docsrs, doc(cfg(unix)))]
60+
impl AsFd for Socket {
61+
fn as_fd(&self) -> BorrowedFd<'_> {
62+
unsafe {
63+
let raw_fd = self.as_raw_fd();
64+
BorrowedFd::borrow_raw(raw_fd)
65+
}
66+
}
67+
}
68+
5869
#[cfg(windows)]
5970
#[cfg_attr(docsrs, doc(cfg(windows)))]
6071
impl AsRawSocket for Socket {

0 commit comments

Comments
 (0)