Trait zbus::AsyncDrop

source ·
pub trait AsyncDrop {
    // Required method
    fn async_drop<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
       where Self: 'async_trait;
}
Expand description

Async equivalent of Drop.

This trait is similar to Drop, but it is async so types that need to perform async operations when they’re dropped should implement this. Unfortunately, the async_drop method won’t be implicitly called by the compiler for the user so types implementing this trait will also have to implement Drop to clean up (for example, by passing the async cleanup to another async task). This is also why the async_drop method consumes self instead of taking a &mut self like Drop.

Hopefully this will be unnecessary in the future when Rust gain an AsyncDrop itself.

Required Methods§

source

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

Perform the async cleanup.

Implementors§