Skip to main content

HandleBased

Trait HandleBased 

Source
pub trait HandleBased:
    AsHandleRef
    + From<Handle>
    + Into<Handle> {
    // Required method
    fn invalidate(&mut self);

    // Provided methods
    fn close(self) -> impl Future<Output = Result<(), Error>> { ... }
    fn duplicate_handle(
        &self,
        rights: Rights,
    ) -> impl Future<Output = Result<Self, Error>> { ... }
    fn replace_handle(
        self,
        rights: Rights,
    ) -> impl Future<Output = Result<Self, Error>> { ... }
    fn into_handle(self) -> Handle { ... }
    fn from_handle(handle: Handle) -> Self { ... }
    fn into_handle_based<H: HandleBased>(self) -> H { ... }
    fn from_handle_based<H: HandleBased>(h: H) -> Self { ... }
}

Required Methods§

Source

fn invalidate(&mut self)

Drop ownership of this handle and make it invalid, without closing the handle.

Provided Methods§

Source

fn close(self) -> impl Future<Output = Result<(), Error>>

Closes this handle. Surfaces errors that dropping the handle will not.

Source

fn duplicate_handle( &self, rights: Rights, ) -> impl Future<Output = Result<Self, Error>>

Duplicate this handle.

Source

fn replace_handle( self, rights: Rights, ) -> impl Future<Output = Result<Self, Error>>

Replace this handle with an equivalent one with different rights.

Source

fn into_handle(self) -> Handle

Convert this handle-based value into a pure Handle.

Source

fn from_handle(handle: Handle) -> Self

Construct a new handle-based value from a Handle.

Source

fn into_handle_based<H: HandleBased>(self) -> H

Turn this handle-based value into one of a different type.

Source

fn from_handle_based<H: HandleBased>(h: H) -> Self

Turn another handle-based type into this one.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§