d5939db
use std::sync::Arc;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IssueConfig {
#[serde(default = "default_max_pagination")]
pub max_pagination: u64,
#[serde(default = "default_default_pagination")]
pub default_pagination: u64,
#[serde(default = "default_max_title_len")]
pub max_title_len: usize,
#[serde(default = "default_max_body_len")]
pub max_body_len: usize,
#[serde(default = "default_max_collection_name_len")]
pub max_collection_name_len: usize,
#[serde(default = "default_max_label_name_len")]
pub max_label_name_len: usize,
#[serde(default = "default_max_label_color_len")]
pub max_label_color_len: usize,
#[serde(default = "default_max_milestone_title_len")]
pub max_milestone_title_len: usize,
#[serde(default = "default_max_milestone_description_len")]
pub max_milestone_description_len: usize,
#[serde(default = "default_max_comment_len")]
pub max_comment_len: usize,
#[serde(default = "default_default_collection_name")]
pub default_collection_name: String,
#[serde(default = "default_max_reaction_emoji_len")]
pub max_reaction_emoji_len: usize,
#[serde(default = "default_max_attachment_size_bytes")]
pub max_attachment_size_bytes: i64,
#[serde(default = "default_max_dependency_label_len")]
pub max_dependency_label_len: usize,
#[serde(default = "default_max_event_content_len")]
pub max_event_content_len: usize,
}
fn default_max_pagination() -> u64 {
100
}
fn default_default_pagination() -> u64 {
20
}
fn default_max_title_len() -> usize {
255
}
fn default_max_body_len() -> usize {
65_535
}
fn default_max_collection_name_len() -> usize {
100
}
fn default_max_label_name_len() -> usize {
50
}
fn default_max_label_color_len() -> usize {
7
}
fn default_max_milestone_title_len() -> usize {
100
}
fn default_max_milestone_description_len() -> usize {
1024
}
fn default_max_comment_len() -> usize {
65_535
}
fn default_default_collection_name() -> String {
"default".to_string()
}
fn default_max_reaction_emoji_len() -> usize {
32
}
fn default_max_attachment_size_bytes() -> i64 {
10 * 1024 * 1024
}
fn default_max_dependency_label_len() -> usize {
100
}
fn default_max_event_content_len() -> usize {
4096
}
impl Default for IssueConfig {
fn default() -> Self {
Self {
max_pagination: default_max_pagination(),
default_pagination: default_default_pagination(),
max_title_len: default_max_title_len(),
max_body_len: default_max_body_len(),
max_collection_name_len: default_max_collection_name_len(),
max_label_name_len: default_max_label_name_len(),
max_label_color_len: default_max_label_color_len(),
max_milestone_title_len: default_max_milestone_title_len(),
max_milestone_description_len: default_max_milestone_description_len(),
max_comment_len: default_max_comment_len(),
default_collection_name: default_default_collection_name(),
max_reaction_emoji_len: default_max_reaction_emoji_len(),
max_attachment_size_bytes: default_max_attachment_size_bytes(),
max_dependency_label_len: default_max_dependency_label_len(),
max_event_content_len: default_max_event_content_len(),
}
}
}
pub type SharedIssueConfig = Arc<IssueConfig>;