database_reflection/metadata/
with_metadata.rs1use std::collections::HashMap;
2
3pub trait WithMetadata {
4 fn get_metadata(&self) -> &HashMap<String, String>;
6
7 fn get_metadata_mut(&mut self) -> &mut HashMap<String, String>;
9
10 fn set_meta(&mut self, meta_key: impl ToString, meta_value: impl ToString) -> &mut Self {
12 self.get_metadata_mut()
13 .insert(meta_key.to_string(), meta_value.to_string());
14
15 self
16 }
17
18 fn set_meta_flag(&mut self, meta_flag: impl ToString) -> &mut Self {
20 self.get_metadata_mut()
21 .insert(meta_flag.to_string(), "1".to_string());
22
23 self
24 }
25
26 fn meta_flag(&self, flag: &str) -> bool {
28 self.get_metadata().contains_key(flag)
29 }
30
31 fn meta(&self, key: &str) -> Option<String> {
33 self.get_metadata().get(key).cloned()
34 }
35}