greentic_session/
store.rs1use crate::model::{Cas, Session, SessionKey};
2use greentic_types::GResult;
3
4pub trait SessionStore: Send + Sync + 'static {
5 fn get(&self, key: &SessionKey) -> GResult<Option<(Session, Cas)>>;
7
8 fn put(&self, session: Session) -> GResult<Cas>;
10
11 fn update_cas(&self, session: Session, expected: Cas) -> GResult<Result<Cas, Cas>>;
13
14 fn delete(&self, key: &SessionKey) -> GResult<bool>;
16
17 fn touch(&self, key: &SessionKey, ttl_secs: Option<u32>) -> GResult<bool>;
19}