add Map::clear() to db interface
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
parent
17003ba773
commit
d8ea8b378c
2 changed files with 31 additions and 0 deletions
|
@ -1,3 +1,4 @@
|
|||
mod clear;
|
||||
pub mod compact;
|
||||
mod contains;
|
||||
mod count;
|
||||
|
|
30
src/database/map/clear.rs
Normal file
30
src/database/map/clear.rs
Normal file
|
@ -0,0 +1,30 @@
|
|||
use std::sync::Arc;
|
||||
|
||||
use conduwuit::{
|
||||
Result, implement,
|
||||
utils::stream::{ReadyExt, TryIgnore},
|
||||
};
|
||||
use futures::{Stream, TryStreamExt};
|
||||
|
||||
use crate::keyval::Key;
|
||||
|
||||
/// Delete all data stored in this map. !!! USE WITH CAUTION !!!
|
||||
///
|
||||
/// See for_clear() with additional details.
|
||||
#[implement(super::Map)]
|
||||
#[tracing::instrument(level = "trace")]
|
||||
pub async fn clear(self: &Arc<Self>) {
|
||||
self.for_clear().ignore_err().ready_for_each(|_| ()).await;
|
||||
}
|
||||
|
||||
/// Delete all data stored in this map. !!! USE WITH CAUTION !!!
|
||||
///
|
||||
/// Provides stream of keys undergoing deletion along with any errors.
|
||||
///
|
||||
/// Note this operation applies to a snapshot of the data when invoked.
|
||||
/// Additional data written during or after this call may be missed.
|
||||
#[implement(super::Map)]
|
||||
#[tracing::instrument(level = "trace")]
|
||||
pub fn for_clear(self: &Arc<Self>) -> impl Stream<Item = Result<Key<'_>>> + Send {
|
||||
self.raw_keys().inspect_ok(|key| self.remove(key))
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue