tuwunel_database/map/
insert.rs1use tuwunel_core::implement;
7
8use crate::util::or_else;
9
10#[implement(super::Map)]
20#[tracing::instrument(skip_all, fields(%self), level = "trace")]
21pub fn insert<K, V>(&self, key: &K, val: V)
22where
23 K: AsRef<[u8]> + ?Sized,
24 V: AsRef<[u8]>,
25{
26 let write_options = &self.write_options;
27 self.engine
28 .db
29 .put_cf_opt(&self.cf(), key, val, write_options)
30 .or_else(or_else)
31 .expect("database insert error");
32
33 if !self.engine.corked() {
34 self.engine.flush().expect("database flush error");
35 }
36
37 self.notify(key.as_ref());
38}