Trait AsRawFd

1.0.0 · Source
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 · Source

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();

Implementors§

1.48.0 · Source§

impl AsRawFd for i32

Source§

impl AsRawFd for Receiver

Source§

impl AsRawFd for Sender

Source§

impl AsRawFd for compio::fs::File

Source§

impl AsRawFd for compio::fs::Stderr

Source§

impl AsRawFd for compio::fs::Stdin

Source§

impl AsRawFd for compio::fs::Stdout

Source§

impl AsRawFd for compio::net::TcpListener

Source§

impl AsRawFd for compio::net::TcpStream

Source§

impl AsRawFd for compio::net::UdpSocket

Source§

impl AsRawFd for compio::net::UnixListener

Source§

impl AsRawFd for compio::net::UnixStream

Source§

impl AsRawFd for compio::process::ChildStderr

Source§

impl AsRawFd for compio::process::ChildStdin

Source§

impl AsRawFd for compio::process::ChildStdout

Source§

impl AsRawFd for Runtime

1.0.0 · Source§

impl AsRawFd for std::fs::File

Source§

impl AsRawFd for std::io::pipe::PipeReader

Source§

impl AsRawFd for std::io::pipe::PipeWriter

1.21.0 · Source§

impl AsRawFd for std::io::stdio::Stderr

1.21.0 · Source§

impl AsRawFd for std::io::stdio::Stdin

1.21.0 · Source§

impl AsRawFd for std::io::stdio::Stdout

1.0.0 · Source§

impl AsRawFd for std::net::tcp::TcpListener

1.0.0 · Source§

impl AsRawFd for std::net::tcp::TcpStream

1.0.0 · Source§

impl AsRawFd for std::net::udp::UdpSocket

1.63.0 · Source§

impl AsRawFd for BorrowedFd<'_>

Source§

impl AsRawFd for PidFd

1.10.0 · Source§

impl AsRawFd for UnixDatagram

1.10.0 · Source§

impl AsRawFd for std::os::unix::net::listener::UnixListener

1.10.0 · Source§

impl AsRawFd for std::os::unix::net::stream::UnixStream

1.2.0 · Source§

impl AsRawFd for std::process::ChildStderr

1.2.0 · Source§

impl AsRawFd for std::process::ChildStdin

1.2.0 · Source§

impl AsRawFd for std::process::ChildStdout

Source§

impl AsRawFd for os_pipe::PipeReader

Source§

impl AsRawFd for os_pipe::PipeWriter

Source§

impl AsRawFd for Poller

Source§

impl AsRawFd for Handle

Source§

impl AsRawFd for Socket

1.63.0 · Source§

impl AsRawFd for OwnedFd

Source§

impl AsRawFd for Proactor

1.35.0 · Source§

impl<'a> AsRawFd for StderrLock<'a>

1.35.0 · Source§

impl<'a> AsRawFd for StdinLock<'a>

1.35.0 · Source§

impl<'a> AsRawFd for StdoutLock<'a>

Source§

impl<S, C> AsRawFd for IoUring<S, C>
where S: EntryMarker, C: EntryMarker,

1.63.0 · Source§

impl<T> AsRawFd for Box<T>
where T: AsRawFd,

1.69.0 · Source§

impl<T> AsRawFd for Rc<T>
where T: AsRawFd,

Source§

impl<T> AsRawFd for UniqueRc<T>
where T: AsRawFd + ?Sized,

1.63.0 · Source§

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> {}
Source§

impl<T> AsRawFd for AsyncFd<T>
where T: AsRawFd,

Source§

impl<T> AsRawFd for PollFd<T>
where T: AsRawFd,

Source§

impl<T> AsRawFd for SharedFd<T>
where T: AsRawFd,