async-drop
Installation
SKILL.md
AsyncDrop Pattern Guide
The AsyncDrop pattern enables async cleanup for types that hold resources requiring asynchronous teardown (network connections, file handles, background tasks, etc.).
Core Concept
Rust's Drop trait is synchronous, but sometimes cleanup needs to be async. The AsyncDrop pattern solves this by:
- Wrapping values in
AsyncDropGuard<T> - Requiring explicit
async_drop().awaitcalls - Panicking if cleanup is forgotten
Quick Reference
// Creating
let mut guard = AsyncDropGuard::new(my_value);