feat: with items

Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
2023-06-04 11:02:51 +02:00
parent 12c7c8f6ee
commit 534b2e4a23
25 changed files with 517 additions and 111 deletions

View File

@@ -0,0 +1,23 @@
use crate::Context;
pub trait ContextUserExt {
fn set_user_id(&self, user_id: impl Into<String>) -> Context;
fn set_user_id_mut(&mut self, user_id: impl Into<String>) -> &mut Context;
fn get_user_id(&self) -> Option<String>;
}
const USER_ID_KEY: &str = "user_id";
impl ContextUserExt for Context {
fn set_user_id(&self, user_id: impl Into<String>) -> Context {
self.with_value(USER_ID_KEY, user_id)
}
fn set_user_id_mut(&mut self, user_id: impl Into<String>) -> &mut Context {
self.with_value_mut(USER_ID_KEY, user_id)
}
fn get_user_id(&self) -> Option<String> {
self.get(USER_ID_KEY).map(|s| s.to_string())
}
}