Acquire

Trait Acquire 

Source
pub trait Acquire:
    Clone
    + Send
    + Sync
    + 'static {
    type Handle: Send + Sync + 'static;

    // Required method
    fn acquire<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Self::Handle> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}

Required Associated Types§

Source

type Handle: Send + Sync + 'static

Required Methods§

Source

fn acquire<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Self::Handle> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Acquire for Arc<Semaphore>

Source§

type Handle = OwnedSemaphorePermit

Source§

fn acquire<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Self::Handle> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

impl<A: Acquire> Acquire for Option<A>

Source§

type Handle = Option<<A as Acquire>::Handle>

Source§

fn acquire<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Self::Handle> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

impl<A: Acquire, B: Acquire> Acquire for (A, B)

Source§

type Handle = (<A as Acquire>::Handle, <B as Acquire>::Handle)

Source§

fn acquire<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Self::Handle> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Implementors§