doido_controller/
session.rs1use doido_core::Result;
2use serde_json::Value;
3
4#[derive(Clone, Debug)]
5pub struct Session {
6 pub id: String,
7 pub data: Value,
8}
9
10#[async_trait::async_trait]
11pub trait SessionStore: Send + Sync {
12 async fn load(&self, id: &str) -> Result<Option<Session>>;
13 async fn save(&self, session: &Session) -> Result<()>;
14 async fn destroy(&self, id: &str) -> Result<()>;
15}
16
17pub struct CookieSessionStore;
18
19#[async_trait::async_trait]
20impl SessionStore for CookieSessionStore {
21 async fn load(&self, _id: &str) -> Result<Option<Session>> {
22 Ok(None)
23 }
24 async fn save(&self, _session: &Session) -> Result<()> {
25 Ok(())
26 }
27 async fn destroy(&self, _id: &str) -> Result<()> {
28 Ok(())
29 }
30}