Trait std::os::fd::AsFd

1.63.0 · source ·
pub trait AsFd {
    // Required method
    fn as_fd(&self) -> BorrowedFd<'_>;
}
Expand description

A trait to borrow the file descriptor from an underlying object.

This is only available on unix platforms and must be imported in order to call the method. Windows platforms have a corresponding AsHandle and AsSocket set of traits.

Required Methods§

source

fn as_fd(&self) -> BorrowedFd<'_>

Borrows the file descriptor.

§Example
use std::fs::File;

let mut f = File::open("foo.txt")?;
let borrowed_fd: BorrowedFd<'_> = f.as_fd();
Run

Implementors§

source§

impl AsFd for File

source§

impl AsFd for Stderr

source§

impl AsFd for Stdin

source§

impl AsFd for Stdout

source§

impl AsFd for TcpListener

source§

impl AsFd for TcpStream

source§

impl AsFd for UdpSocket

source§

impl AsFd for ChildStderr

Available on Unix only.
source§

impl AsFd for ChildStdin

Available on Unix only.
source§

impl AsFd for ChildStdout

Available on Unix only.
source§

impl AsFd for PidFd

Available on Linux only.
source§

impl AsFd for UnixDatagram

Available on Unix only.
source§

impl AsFd for UnixListener

Available on Unix only.
source§

impl AsFd for UnixStream

Available on Unix only.
source§

impl AsFd for BorrowedFd<'_>

source§

impl AsFd for OwnedFd

source§

impl<'a> AsFd for StderrLock<'a>

source§

impl<'a> AsFd for StdinLock<'a>

source§

impl<'a> AsFd for StdoutLock<'a>

source§

impl<T: AsFd + ?Sized> AsFd for &T

source§

impl<T: AsFd + ?Sized> AsFd for &mut T

1.64.0 · source§

impl<T: AsFd + ?Sized> AsFd for Box<T>

1.69.0 · source§

impl<T: AsFd + ?Sized> AsFd for Rc<T>

1.64.0 · source§

impl<T: AsFd + ?Sized> AsFd for Arc<T>

This impl allows implementing traits that require AsFd on Arc.

use std::net::UdpSocket;
use std::sync::Arc;

trait MyTrait: AsFd {}
impl MyTrait for Arc<UdpSocket> {}
impl MyTrait for Box<UdpSocket> {}
Run