Struct unsafe_io::UnsafeHandle[][src]

#[repr(transparent)]pub struct UnsafeHandle(_);

A non-owning unsafe I/O handle.

On Posix-ish platforms this is just a RawFd. On Windows it is a minimal abstraction over RawHandle and RawSocket. Similar to Rust raw pointers, it is considered safe to construct these, but unsafe to do any I/O with them (effectively dereferencing them).

Implementations

impl UnsafeHandle[src]

#[must_use]pub const unsafe fn as_readable(self) -> UnsafeReadable

Notable traits for UnsafeReadable

impl Read for UnsafeReadable
[src]

Obtain self with a type that implements Read.

Safety

The resulting UnsafeReadable value must not outlive the underlying resource.

Also, callers should avoid mixing uses of UnsafeReadable with the type's Read or Write implementations if the type uses buffering, as for example async_std::fs::File does.

#[must_use]pub const unsafe fn as_writeable(self) -> UnsafeWriteable

Notable traits for UnsafeWriteable

impl Write for UnsafeWriteable
[src]

Obtain self with a type that implements Write.

Safety

The resulting UnsafeWriteable value must not outlive the underlying resource.

Also, callers should avoid mixing uses of UnsafeWriteable with the type's Read or Write implementation if the type uses buffering, as for example async_std::fs::File does.

#[must_use]pub unsafe fn eq(self, other: Self) -> bool[src]

UnsafeHandle doesn't implement Eq or PartialEq because comparison is undefined for dangling handles.

Safety

Both self and other must outlive their underlying resources.

#[must_use]pub const fn from_raw_fd(raw_fd: RawFd) -> Self[src]

Like FromRawFd::from_raw_fd, but isn't unsafe because it doesn't imply a dereference.

Trait Implementations

impl AsRawFd for UnsafeHandle[src]

UnsafeHandle doesn't own its handle, but AsRawFd doesn't require any guarantees about lifetimes, so it's safe to implement. This is similar to how RawFd implements AsRawFd (see the raw_fd_reflexive_traits trait implementations in std).

impl Clone for UnsafeHandle[src]

impl Copy for UnsafeHandle[src]

impl Debug for UnsafeHandle[src]

impl FromRawFd for UnsafeHandle[src]

UnsafeHandle doesn't own its handle; see the comments for impl AsRawFd for UnsafeHandle.

impl FromUnsafeHandle for UnsafeHandle[src]

UnsafeHandle doesn't own its handle; see the comments for impl AsRawFd for UnsafeHandle.

impl IntoRawFd for UnsafeHandle[src]

UnsafeHandle doesn't own its handle; see the comments for impl AsRawFd for UnsafeHandle.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.