37
crates/como_domain/src/common/mod.rs
Normal file
37
crates/como_domain/src/common/mod.rs
Normal file
@@ -0,0 +1,37 @@
|
||||
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())
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user