use crate::{action::action_impl, error::Result, gridfs::GridFsBucket};
impl GridFsBucket {
pub fn drop(&self) -> Drop {
Drop { bucket: self }
}
}
#[cfg(feature = "sync")]
impl crate::sync::gridfs::GridFsBucket {
pub fn drop(&self) -> Drop {
self.async_bucket.drop()
}
}
#[must_use]
pub struct Drop<'a> {
bucket: &'a GridFsBucket,
}
#[action_impl]
impl<'a> Action for Drop<'a> {
type Future = DropFuture;
async fn execute(self) -> Result<()> {
self.bucket.files().drop().await?;
self.bucket.chunks().drop().await?;
Ok(())
}
}