1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
use crate::session::SessionKey;
use failure::Error;
use futures::Future;
use serde::{de::DeserializeOwned, Serialize};
#[cfg(any(feature = "fs-store", feature = "redis-store"))]
mod data;
#[cfg(feature = "fs-store")]
pub mod fs;
#[cfg(feature = "redis-store")]
pub mod redis;
pub trait SessionStore {
fn get<O>(&self, key: SessionKey) -> Box<dyn Future<Item = Option<O>, Error = Error> + Send>
where
O: DeserializeOwned + Send + 'static;
fn set<I>(&self, key: SessionKey, val: &I) -> Box<dyn Future<Item = (), Error = Error> + Send>
where
I: Serialize;
fn expire(&self, key: SessionKey, seconds: usize) -> Box<dyn Future<Item = (), Error = Error> + Send>;
fn del(&self, key: SessionKey) -> Box<dyn Future<Item = (), Error = Error> + Send>;
}