tuwunel_database/map/
del.rs1use std::{convert::AsRef, fmt::Debug, io::Write};
2
3use serde::Serialize;
4use tuwunel_core::{arrayvec::ArrayVec, implement};
5
6use crate::{keyval::KeyBuf, ser};
7
8#[implement(super::Map)]
9#[inline]
10pub fn del<K>(&self, key: K)
11where
12 K: Serialize + Debug,
13{
14 let mut buf = KeyBuf::new();
15 self.bdel(key, &mut buf);
16}
17
18#[implement(super::Map)]
19#[inline]
20pub fn adel<const MAX: usize, K>(&self, key: K)
21where
22 K: Serialize + Debug,
23{
24 let mut buf = ArrayVec::<u8, MAX>::new();
25 self.bdel(key, &mut buf);
26}
27
28#[implement(super::Map)]
29#[tracing::instrument(skip(self, buf), level = "trace")]
30pub fn bdel<K, B>(&self, key: K, buf: &mut B)
31where
32 K: Serialize + Debug,
33 B: Write + AsRef<[u8]>,
34{
35 let key = ser::serialize(buf, key).expect("failed to serialize deletion key");
36 self.remove(key);
37}