use kameleoon_core::cookies::accessor::CoreCookieAccessor;
pub trait CookieAccessor {
fn set<'a>(&mut self, key: &str, value: &str, max_age: u32, top_level_domain: Option<&'a str>);
fn get(&self, key: &str) -> Option<&str>;
}
pub(crate) struct CookieAccessorAdapter<'a, T> {
pub(crate) inner: Option<&'a mut T>,
}
impl<T: CookieAccessor> CoreCookieAccessor for CookieAccessorAdapter<'_, T> {
fn set<'a>(&mut self, key: &str, value: &str, max_age: u32, top_level_domain: Option<&'a str>) {
if let Some(inner) = self.inner.as_mut() {
inner.set(key, value, max_age, top_level_domain);
}
}
fn get(&self, key: &str) -> Option<String> {
self.inner.as_ref()?.get(key).map(str::to_owned)
}
}