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 BorrowedFd<'_>
impl AsRawFd for std::process::ChildStderr
impl AsRawFd for compio::process::ChildStderr
impl AsRawFd for std::process::ChildStdin
impl AsRawFd for compio::process::ChildStdin
impl AsRawFd for std::process::ChildStdout
impl AsRawFd for compio::process::ChildStdout
impl AsRawFd for CurrentDir
impl AsRawFd for std::fs::Dir
impl AsRawFd for compio::fs::Dir
impl AsRawFd for std::fs::File
impl AsRawFd for compio::fs::File
impl AsRawFd for Handle
impl AsRawFd for OwnedFd
impl AsRawFd for PidFd
impl AsRawFd for PipeReader
impl AsRawFd for PipeWriter
impl AsRawFd for Poll
mio_unsupported_force_poll_poll only.impl AsRawFd for Poller
impl AsRawFd for Proactor
impl AsRawFd for Receiver
impl AsRawFd for Receiver
os-ext only.impl AsRawFd for compio::fs::pipe::Receiver
impl AsRawFd for Registry
mio_unsupported_force_poll_poll only.impl AsRawFd for Runtime
impl AsRawFd for Sender
impl AsRawFd for Sender
os-ext only.impl AsRawFd for compio::fs::pipe::Sender
impl AsRawFd for SignalFd
impl AsRawFd for Socket
impl AsRawFd for std::io::stdio::Stderr
impl AsRawFd for compio::fs::Stderr
impl AsRawFd for std::io::stdio::Stdin
impl AsRawFd for compio::fs::Stdin
impl AsRawFd for std::io::stdio::Stdout
impl AsRawFd for compio::fs::Stdout
impl AsRawFd for std::net::tcp::TcpListener
impl AsRawFd for TcpListener
impl AsRawFd for TcpListener
impl AsRawFd for compio::net::TcpListener
impl AsRawFd for TcpSocket
docsrs only.impl AsRawFd for compio::net::TcpSocket
impl AsRawFd for std::net::tcp::TcpStream
impl AsRawFd for TcpStream
impl AsRawFd for TcpStream
impl AsRawFd for compio::net::TcpStream
impl AsRawFd for std::net::udp::UdpSocket
impl AsRawFd for UdpSocket
impl AsRawFd for UdpSocket
impl AsRawFd for compio::net::UdpSocket
impl AsRawFd for std::os::unix::net::datagram::UnixDatagram
impl AsRawFd for UnixDatagram
impl AsRawFd for UnixDatagram
impl AsRawFd for std::os::unix::net::listener::UnixListener
impl AsRawFd for UnixListener
impl AsRawFd for UnixListener
impl AsRawFd for compio::net::UnixListener
impl AsRawFd for UnixSocket
impl AsRawFd for compio::net::UnixSocket
impl AsRawFd for std::os::unix::net::stream::UnixStream
impl AsRawFd for UnixStream
impl AsRawFd for UnixStream
impl AsRawFd for compio::net::UnixStream
impl AsRawFd for i32
impl<'a> AsRawFd for StderrLock<'a>
impl<'a> AsRawFd for StdinLock<'a>
impl<'a> AsRawFd for StdoutLock<'a>
impl<IO> AsRawFd for TlsStream<IO>where
IO: AsRawFd,
impl<S, C> AsRawFd for IoUring<S, C>where
S: EntryMarker,
C: EntryMarker,
impl<S> AsRawFd for TlsStream<S>where
S: AsRawFd,
impl<S> AsRawFd for TlsStream<S>where
S: 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> {}