Files
web-rust-template-project/src/config/email.rs
T

56 lines
1.4 KiB
Rust

use serde::Deserialize;
#[derive(Debug, Deserialize, Clone)]
pub struct EmailConfig {
#[serde(default)]
pub enabled: bool,
#[serde(default)]
pub smtp_host: String,
#[serde(default = "default_smtp_port")]
pub smtp_port: u16,
#[serde(default)]
pub smtp_username: String,
#[serde(default)]
pub smtp_password: String,
#[serde(default)]
pub from_email: String,
#[serde(default = "default_from_name")]
pub from_name: String,
#[serde(default = "default_code_ttl")]
pub verification_code_ttl_seconds: u64,
#[serde(default)]
pub queue_enabled: bool,
#[serde(default = "default_worker_pool_size")]
pub worker_pool_size: usize,
}
fn default_smtp_port() -> u16 {
587
}
fn default_from_name() -> String {
"Web Rust Template".into()
}
fn default_code_ttl() -> u64 {
600
}
fn default_worker_pool_size() -> usize {
2
}
impl Default for EmailConfig {
fn default() -> Self {
Self {
enabled: false,
smtp_host: String::new(),
smtp_port: default_smtp_port(),
smtp_username: String::new(),
smtp_password: String::new(),
from_email: String::new(),
from_name: default_from_name(),
verification_code_ttl_seconds: default_code_ttl(),
queue_enabled: false,
worker_pool_size: default_worker_pool_size(),
}
}
}