pub trait AsRawFd {
// Required method
fn as_raw_fd(&self) -> i32;
}Expand description
A trait to extract the raw file descriptor from an underlying object.
This is only available on unix and WASI platforms and must be imported in
order to call the method. Windows platforms have a corresponding
AsRawHandle and AsRawSocket set of traits.
Required Methods§
1.0.0 · Sourcefn as_raw_fd(&self) -> i32
fn as_raw_fd(&self) -> i32
Extracts the raw file descriptor.
This function is typically used to borrow an owned file descriptor. When used in this way, this method does not pass ownership of the raw file descriptor to the caller, and the file descriptor is only guaranteed to be valid while the original object has not yet been destroyed.
However, borrowing is not strictly required. See [AsFd::as_fd]
for an API which strictly borrows a file descriptor.
§Example
use std::fs::File;
#[cfg(any(unix, target_os = "wasi"))]
use std::os::fd::{AsRawFd, RawFd};
let mut f = File::open("foo.txt")?;
// Note that `raw_fd` is only valid as long as `f` exists.
#[cfg(any(unix, target_os = "wasi"))]
let raw_fd: RawFd = f.as_raw_fd();Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
impl AsRawFd for i32
impl AsRawFd for otter_nodejs_tests::fs::Dir
impl AsRawFd for std::net::tcp::TcpListener
impl AsRawFd for std::net::tcp::TcpStream
impl AsRawFd for std::net::udp::UdpSocket
impl AsRawFd for PidFd
impl AsRawFd for ChildStderr
impl AsRawFd for ChildStdin
impl AsRawFd for ChildStdout
impl AsRawFd for Term
impl AsRawFd for inotify::inotify::Inotify
impl AsRawFd for mio::net::tcp::listener::TcpListener
impl AsRawFd for mio::net::tcp::stream::TcpStream
impl AsRawFd for mio::net::tcp::TcpListener
impl AsRawFd for mio::net::tcp::TcpStream
impl AsRawFd for mio::net::udp::UdpSocket
impl AsRawFd for mio::net::udp::UdpSocket
impl AsRawFd for mio::net::uds::datagram::UnixDatagram
impl AsRawFd for mio::net::uds::listener::UnixListener
impl AsRawFd for mio::net::uds::stream::UnixStream
impl AsRawFd for mio::poll::Poll
impl AsRawFd for mio::poll::Poll
mio_unsupported_force_poll_poll and neither Solaris nor Play Station Vita only.impl AsRawFd for mio::poll::Poll
mio_unsupported_force_poll_poll and neither AIX nor ESP-IDF nor Fuchsia nor Haiku nor Hermit nor GNU/Hurd nor QNX Neutrino nor Solaris nor Play Station Vita nor Cygwin only.impl AsRawFd for mio::poll::Registry
mio_unsupported_force_poll_poll and neither Solaris nor Play Station Vita only.impl AsRawFd for mio::poll::Registry
mio_unsupported_force_poll_poll and neither AIX nor ESP-IDF nor Haiku nor Fuchsia nor Hermit nor GNU/Hurd nor QNX Neutrino nor Solaris nor Play Station Vita nor Cygwin only.impl AsRawFd for mio::sys::unix::pipe::Receiver
os-ext only.impl AsRawFd for mio::sys::unix::pipe::Receiver
os-ext only.impl AsRawFd for mio::sys::unix::pipe::Sender
os-ext only.impl AsRawFd for mio::sys::unix::pipe::Sender
os-ext only.impl AsRawFd for TcpBuilder
impl AsRawFd for UdpBuilder
impl AsRawFd for Handle
impl AsRawFd for socket2::socket::Socket
impl AsRawFd for socket2::socket::Socket
impl AsRawFd for tokio::fs::file::File
impl AsRawFd for tokio::net::tcp::listener::TcpListener
impl AsRawFd for TcpSocket
docsrs, or Unix, or WASI only.impl AsRawFd for tokio::net::tcp::stream::TcpStream
impl AsRawFd for tokio::net::udp::UdpSocket
impl AsRawFd for tokio::net::unix::datagram::socket::UnixDatagram
impl AsRawFd for tokio::net::unix::listener::UnixListener
impl AsRawFd for tokio::net::unix::pipe::Receiver
impl AsRawFd for tokio::net::unix::pipe::Sender
impl AsRawFd for UnixSocket
impl AsRawFd for tokio::net::unix::stream::UnixStream
impl AsRawFd for PipeReader
impl AsRawFd for PipeWriter
impl AsRawFd for Stderr
impl AsRawFd for Stdin
impl AsRawFd for Stdout
impl AsRawFd for otter_nodejs_tests::nix::dir::Dir
impl AsRawFd for OwningIter
The file descriptor continues to be owned by the OwningIter,
so callers must not keep a RawFd after the OwningIter is dropped.
impl AsRawFd for PollFd
impl AsRawFd for PtyMaster
impl AsRawFd for otter_nodejs_tests::nix::sys::inotify::Inotify
impl AsRawFd for SignalFd
impl AsRawFd for TimerFd
impl AsRawFd for Fd
impl AsRawFd for otter_nodejs_tests::File
impl AsRawFd for otter_nodejs_tests::UnixStream
impl AsRawFd for NonblockingUnixSeqpacketConn
impl AsRawFd for NonblockingUnixSeqpacketListener
impl AsRawFd for UnixSeqpacketConn
impl AsRawFd for UnixSeqpacketListener
impl AsRawFd for BorrowedFd<'_>
impl AsRawFd for OwnedFd
impl AsRawFd for otter_nodejs_tests::unix::net::UnixDatagram
impl AsRawFd for otter_nodejs_tests::unix::net::UnixListener
impl<'a> AsRawFd for StderrLock<'a>
impl<'a> AsRawFd for StdinLock<'a>
impl<'a> AsRawFd for StdoutLock<'a>
impl<F> AsRawFd for NamedTempFile<F>where
F: AsRawFd,
impl<S> AsRawFd for TlsStream<S>where
S: AsRawFd,
impl<T> AsRawFd for Box<T>where
T: AsRawFd,
impl<T> AsRawFd for Rc<T>where
T: AsRawFd,
impl<T> AsRawFd for UniqueRc<T>
impl<T> AsRawFd for AsyncFd<T>where
T: AsRawFd,
impl<T> AsRawFd for Arc<T>where
T: AsRawFd,
This impl allows implementing traits that require AsRawFd on Arc.
use std::net::UdpSocket;
use std::sync::Arc;
trait MyTrait: AsRawFd {
}
impl MyTrait for Arc<UdpSocket> {}
impl MyTrait for Box<UdpSocket> {}