44 lines
1.1 KiB
Rust
44 lines
1.1 KiB
Rust
use serde::Deserialize;
|
|
|
|
#[derive(Debug, Deserialize, Clone)]
|
|
pub struct ServerConfig {
|
|
#[serde(default = "default_server_host")]
|
|
pub host: String,
|
|
#[serde(default = "default_server_port")]
|
|
pub port: u16,
|
|
#[serde(default = "default_request_timeout_seconds")]
|
|
pub request_timeout_seconds: u64,
|
|
#[serde(default = "default_max_body_bytes")]
|
|
pub max_body_bytes: usize,
|
|
#[serde(default = "default_concurrency_limit")]
|
|
pub concurrency_limit: usize,
|
|
#[serde(default = "default_rate_limit_per_minute")]
|
|
pub rate_limit_per_minute: u32,
|
|
#[serde(default = "default_cors_origins")]
|
|
pub cors_origins: Vec<String>,
|
|
}
|
|
|
|
fn default_request_timeout_seconds() -> u64 {
|
|
30
|
|
}
|
|
fn default_max_body_bytes() -> usize {
|
|
1024 * 1024
|
|
}
|
|
fn default_concurrency_limit() -> usize {
|
|
256
|
|
}
|
|
fn default_rate_limit_per_minute() -> u32 {
|
|
120
|
|
}
|
|
fn default_cors_origins() -> Vec<String> {
|
|
vec!["http://localhost:3000".to_string()]
|
|
}
|
|
|
|
fn default_server_host() -> String {
|
|
"127.0.0.1".to_string()
|
|
}
|
|
|
|
fn default_server_port() -> u16 {
|
|
3000
|
|
}
|