std::os::fd

Trait 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§

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

Implementors§

1.63.0 · source§

impl AsFd for File

1.63.0 · source§

impl AsFd for Stderr

1.63.0 · source§

impl AsFd for Stdin

1.63.0 · source§

impl AsFd for Stdout

1.63.0 · source§

impl AsFd for TcpListener

1.63.0 · source§

impl AsFd for TcpStream

1.63.0 · source§

impl AsFd for UdpSocket

source§

impl AsFd for PipeReader

source§

impl AsFd for PipeWriter

1.63.0 · source§

impl AsFd for ChildStderr

Available on Unix only.
1.63.0 · source§

impl AsFd for ChildStdin

Available on Unix only.
1.63.0 · source§

impl AsFd for ChildStdout

Available on Unix only.
source§

impl AsFd for PidFd

Available on Linux only.
1.63.0 · source§

impl AsFd for UnixDatagram

Available on Unix only.
1.63.0 · source§

impl AsFd for UnixListener

Available on Unix only.
1.63.0 · source§

impl AsFd for UnixStream

Available on Unix only.
1.63.0 · source§

impl AsFd for BorrowedFd<'_>

1.63.0 · source§

impl AsFd for OwnedFd

1.63.0 · source§

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

1.63.0 · source§

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

1.63.0 · source§

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

1.63.0 · source§

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

1.63.0 · 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> {}