como/como_domain/src/common/mod.rs
kjuulh 534b2e4a23
feat: with items
Signed-off-by: kjuulh <contact@kjuulh.io>
2023-06-04 11:02:51 +02:00

38 lines
808 B
Rust

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