use serde::{Deserialize, Serialize};
use wheel_rs::serde::vec_option_serde;
#[derive(Debug, Serialize, Deserialize, Clone)]
#[serde(rename_all = "kebab-case")]
pub struct CorsSettings {
#[serde(with = "vec_option_serde", default = "allowed_origins_default")]
pub allowed_origins: Option<Vec<String>>,
#[serde(with = "vec_option_serde", default = "allowed_methods_default")]
pub allowed_methods: Option<Vec<String>>,
#[serde(with = "vec_option_serde", default = "allowed_headers_default")]
pub allowed_headers: Option<Vec<String>>,
#[serde(with = "vec_option_serde", default = "expose_headers_default")]
pub expose_headers: Option<Vec<String>>,
#[serde(default = "max_age_default")]
pub max_age: Option<usize>,
#[serde(default = "supports_credentials_default")]
pub supports_credentials: Option<bool>,
}
fn allowed_origins_default() -> Option<Vec<String>> {
None
}
fn allowed_methods_default() -> Option<Vec<String>> {
None
}
fn allowed_headers_default() -> Option<Vec<String>> {
None
}
fn expose_headers_default() -> Option<Vec<String>> {
None
}
fn max_age_default() -> Option<usize> {
Some(1800)
}
fn supports_credentials_default() -> Option<bool> {
None
}