29cc961
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum SessionMode {
Manual,
#[default]
OptIn,
Persistent,
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum SameSite {
Strict,
#[default]
Lax,
None,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(default)]
pub struct SessionConfig {
pub mode: Option<SessionMode>,
pub cookie_name: Option<String>,
pub cookie_domain: Option<String>,
pub cookie_path: Option<String>,
pub cookie_http_only: Option<bool>,
pub cookie_secure: Option<bool>,
pub cookie_same_site: Option<SameSite>,
pub cookie_max_age_secs: Option<i64>,
pub cookie_prefix_host: Option<bool>,
pub cookie_encode_ip_and_user_agent: Option<bool>,
pub lifespan_secs: Option<i64>,
pub max_lifespan_secs: Option<i64>,
pub memory_lifespan_secs: Option<i64>,
pub table_name: Option<String>,
pub key: Option<String>,
pub database_key: Option<String>,
pub always_save: Option<bool>,
pub db_update_interval_secs: Option<i64>,
pub purge_database_update_secs: Option<i64>,
pub enable_bloom_filter: Option<bool>,
}