Skip to main content

tuwunel_database/map/
remove.rs

1use std::{convert::AsRef, fmt::Debug};
2
3use tuwunel_core::implement;
4
5use crate::util::or_else;
6
7#[implement(super::Map)]
8#[tracing::instrument(skip(self, key), fields(%self), level = "trace")]
9pub fn remove<K>(&self, key: &K)
10where
11	K: AsRef<[u8]> + ?Sized + Debug,
12{
13	let write_options = &self.write_options;
14	self.engine
15		.db
16		.delete_cf_opt(&self.cf(), key, write_options)
17		.or_else(or_else)
18		.expect("database remove error");
19
20	if !self.engine.corked() {
21		self.engine.flush().expect("database flush error");
22	}
23
24	self.notify(key.as_ref());
25}