Skip to content
Clone
030e59e
84 lines 2.4 KB Rust
use std::sync::Arc;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SpaceConfig {
#[serde(default = "default_max_pagination")]
pub max_pagination: u64,
#[serde(default = "default_default_pagination")]
pub default_pagination: u64,
#[serde(default = "default_max_space_name_len")]
pub max_space_name_len: usize,
#[serde(default = "default_max_space_desc_len")]
pub max_space_desc_len: usize,
#[serde(default = "default_max_role_name_len")]
pub max_role_name_len: usize,
#[serde(default = "default_max_alias_name_len")]
pub max_alias_name_len: usize,
#[serde(default = "default_max_invite_email_len")]
pub max_invite_email_len: usize,
#[serde(default = "default_max_channel_name_len")]
pub max_channel_name_len: usize,
#[serde(default = "default_max_topic_len")]
pub max_topic_len: usize,
#[serde(default = "default_max_purpose_len")]
pub max_purpose_len: usize,
#[serde(default = "default_invite_expiry_hours")]
pub invite_expiry_hours: i64,
}
fn default_max_pagination() -> u64 {
100
}
fn default_default_pagination() -> u64 {
20
}
fn default_max_space_name_len() -> usize {
64
}
fn default_max_space_desc_len() -> usize {
512
}
fn default_max_role_name_len() -> usize {
64
}
fn default_max_alias_name_len() -> usize {
64
}
fn default_max_invite_email_len() -> usize {
320
}
fn default_max_channel_name_len() -> usize {
64
}
fn default_max_topic_len() -> usize {
256
}
fn default_max_purpose_len() -> usize {
512
}
fn default_invite_expiry_hours() -> i64 {
24
}
impl Default for SpaceConfig {
fn default() -> Self {
Self {
max_pagination: default_max_pagination(),
default_pagination: default_default_pagination(),
max_space_name_len: default_max_space_name_len(),
max_space_desc_len: default_max_space_desc_len(),
max_role_name_len: default_max_role_name_len(),
max_alias_name_len: default_max_alias_name_len(),
max_invite_email_len: default_max_invite_email_len(),
max_channel_name_len: default_max_channel_name_len(),
max_topic_len: default_max_topic_len(),
max_purpose_len: default_max_purpose_len(),
invite_expiry_hours: default_invite_expiry_hours(),
}
}
}
#[allow(dead_code)]
pub type SharedSpaceConfig = Arc<SpaceConfig>;