56 lines
1.4 KiB
Rust
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(),
|
|
}
|
|
}
|
|
}
|