pub mod user; use std::collections::BTreeMap; #[derive(Debug, Clone)] pub struct Context { values: BTreeMap, } impl Context { pub fn new() -> Self { Self { values: Default::default(), } } pub fn with_value(&self, key: impl Into, value: impl Into) -> Self { let mut values = self.values.clone(); let _ = values.insert(key.into(), value.into()); Self { values } } pub fn with_value_mut( &mut self, key: impl Into, value: impl Into, ) -> &mut Self { self.values.insert(key.into(), value.into()); self } pub fn get(&self, key: impl AsRef) -> Option<&str> { self.values.get(key.as_ref()).map(|s| s.as_str()) } }