Skip to main content

doido_controller/
session.rs

1use 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}