Skip to main content

AsRawFd

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

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

1.63.0 · Source§

impl AsRawFd for BorrowedFd<'_>

§

impl AsRawFd for CFFileDescriptor

1.2.0 · Source§

impl AsRawFd for std::process::ChildStderr

Source§

impl AsRawFd for compio::process::ChildStderr

1.2.0 · Source§

impl AsRawFd for std::process::ChildStdin

Source§

impl AsRawFd for compio::process::ChildStdin

1.2.0 · Source§

impl AsRawFd for std::process::ChildStdout

Source§

impl AsRawFd for compio::process::ChildStdout

Source§

impl AsRawFd for CurrentDir

Source§

impl AsRawFd for std::fs::Dir

Source§

impl AsRawFd for compio::fs::Dir

1.0.0 · Source§

impl AsRawFd for std::fs::File

Available on non-Trusty only.
Source§

impl AsRawFd for compio::fs::File

§

impl AsRawFd for Handle

1.63.0 · Source§

impl AsRawFd for OwnedFd

1.87.0 · Source§

impl AsRawFd for PipeReader

Available on non-Trusty only.
1.87.0 · Source§

impl AsRawFd for PipeWriter

Available on non-Trusty only.
§

impl AsRawFd for Poll

Available on Unix and neither AIX nor Cygwin nor ESP-IDF nor Fuchsia nor GNU/Hurd nor Haiku nor Hermit nor Horizon nor NuttX nor Play Station Vita nor QNX SDP 7.x and non-mio_unsupported_force_poll_poll only.
§

impl AsRawFd for Poller

Source§

impl AsRawFd for Proactor

§

impl AsRawFd for Receiver

§

impl AsRawFd for Receiver

Available on crate feature os-ext only.
Source§

impl AsRawFd for compio::fs::pipe::Receiver

§

impl AsRawFd for Registry

Available on Unix and neither AIX nor Cygwin nor ESP-IDF nor Fuchsia nor GNU/Hurd nor Haiku nor Hermit nor Horizon nor NuttX nor Play Station Vita nor QNX SDP 7.x and non-mio_unsupported_force_poll_poll only.
Source§

impl AsRawFd for Runtime

§

impl AsRawFd for Sender

§

impl AsRawFd for Sender

Available on crate feature os-ext only.
Source§

impl AsRawFd for compio::fs::pipe::Sender

§

impl AsRawFd for Socket

1.21.0 · Source§

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

Source§

impl AsRawFd for compio::fs::Stderr

1.21.0 · Source§

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

Available on non-Trusty only.
Source§

impl AsRawFd for compio::fs::Stdin

1.21.0 · Source§

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

Source§

impl AsRawFd for compio::fs::Stdout

1.0.0 · Source§

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

§

impl AsRawFd for TcpListener

§

impl AsRawFd for TcpListener

Available on Hermit or Unix or WASI only.
Source§

impl AsRawFd for compio::net::TcpListener

§

impl AsRawFd for TcpSocket

Available on Unix, or WASI, or docsrs only.
Source§

impl AsRawFd for compio::net::TcpSocket

1.0.0 · Source§

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

§

impl AsRawFd for TcpStream

§

impl AsRawFd for TcpStream

Available on Hermit or Unix or WASI only.
Source§

impl AsRawFd for compio::net::TcpStream

1.0.0 · Source§

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

§

impl AsRawFd for UdpSocket

§

impl AsRawFd for UdpSocket

Available on Hermit or Unix or WASI only.
Source§

impl AsRawFd for compio::net::UdpSocket

1.10.0 · Source§

impl AsRawFd for std::os::unix::net::datagram::UnixDatagram

§

impl AsRawFd for UnixDatagram

§

impl AsRawFd for UnixDatagram

1.10.0 · Source§

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

§

impl AsRawFd for UnixListener

§

impl AsRawFd for UnixListener

Source§

impl AsRawFd for compio::net::UnixListener

§

impl AsRawFd for UnixSocket

Source§

impl AsRawFd for compio::net::UnixSocket

1.10.0 · Source§

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

§

impl AsRawFd for UnixStream

§

impl AsRawFd for UnixStream

Source§

impl AsRawFd for compio::net::UnixStream

1.48.0 · Source§

impl AsRawFd for i32

1.35.0 · Source§

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

1.35.0 · Source§

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

Available on non-Trusty only.
1.35.0 · Source§

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

Source§

impl<F> AsRawFd for NamedTempFile<F>
where F: AsRawFd,

Available on Unix or WASI only.
§

impl<IO> AsRawFd for TlsStream<IO>
where IO: AsRawFd,

Available on Unix only.
§

impl<S> AsRawFd for TlsStream<S>
where S: AsRawFd,

Available on Unix only.
§

impl<S> AsRawFd for TlsStream<S>
where S: AsRawFd,

Available on Unix only.
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> {}
§

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

Available on Unix only.
Source§

impl<T> AsRawFd for compio::runtime::fd::AsyncFd<T>
where T: AsFd,

§

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

1.63.0 · Source§

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

§

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

Source§

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

1.69.0 · Source§

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

Source§

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

Source§

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