Trait AsyncDrop

trait AsyncDrop

Async version of Drop trait.

When a value is no longer needed, Rust will run a "destructor" on that value. The most common way that a value is no longer needed is when it goes out of scope. Destructors may still run in other circumstances, but we're going to focus on scope for the examples here. To learn about some of those other cases, please see the reference section on destructors.

Copy and (Drop|AsyncDrop) are exclusive

You cannot implement both Copy and (Drop|AsyncDrop) on the same type. Types that are Copy get implicitly duplicated by the compiler, making it very hard to predict when, and how often destructors will be executed. As such, these types cannot have destructors.

Required Methods

async fn drop(self: Pin<&mut Self>)

Executes the async destructor for this type.

This method is called implicitly when the value goes out of scope, and cannot be called explicitly.

When this method has been called, self has not yet been deallocated. That only happens after the method is over.

Panics