pub trait AsyncDrop {
// Required method
async fn drop(self: Pin<&mut Self>);
}
async_drop
#126482)Expand description
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§
Sourceasync fn drop(self: Pin<&mut Self>)
🔬This is a nightly-only experimental API. (async_drop
#126482)
async fn drop(self: Pin<&mut Self>)
async_drop
#126482)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
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.