# Trait io_lifetimes::AsSocketlike

source · [−]

    pub trait AsSocketlike: AsFd {
        fn as_socketlike(&self) -> BorrowedSocketlike<'_>;
        fn as_socketlike_view<Target: SocketlikeViewType>(
            &self
        ) -> SocketlikeView<'_, Target>;
    }

Expand description

A portable trait to borrow a reference from an underlying socketlike object.

This is a portability abstraction over Unix-like `AsFd` and Windows’ `AsSocket`. It also provides the `as_socketlike_view` convenience function providing typed views.

## Required Methods

source

#### fn as_socketlike(&self) -> BorrowedSocketlike<'_>

Borrows the reference.

source

#### fn as_socketlike_view<Target: SocketlikeViewType>(
&self
) -> SocketlikeView<'_, Target>

Return a borrowing view of a resource which dereferences to a `&Target`.

Note that `Read` or `Write` require `&mut Target`, but in some cases, such as `TcpStream`, `Read` and `Write` are implemented for `&Target` in addition to `Target`, and you can get a `&mut &Target` by doing `&*` on the resuting view, like this:

ⓘ

    let v = s.as_socketlike_view::<std::net::TcpStream>();
    (&*v).read(&mut buf).unwrap();

## Implementors

source

### impl<T: AsFd> AsSocketlike for T