use serde::{Deserialize, Serialize};
use ts_rs::TS;
use super::simple_format::*;
const fn date_style_default() -> SimpleDatetimeFormat {
SimpleDatetimeFormat::Short
}
const fn time_style_default() -> SimpleDatetimeFormat {
SimpleDatetimeFormat::Medium
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize, TS)]
pub struct SimpleDatetimeStyleConfig {
#[serde(default)]
#[serde(rename = "timeZone", skip_serializing_if = "Option::is_none")]
pub time_zone: Option<String>,
#[serde(
default = "date_style_default",
rename = "dateStyle",
skip_serializing_if = "SimpleDatetimeFormat::is_short"
)]
pub date_style: SimpleDatetimeFormat,
#[serde(
default = "time_style_default",
rename = "timeStyle",
skip_serializing_if = "SimpleDatetimeFormat::is_medium"
)]
pub time_style: SimpleDatetimeFormat,
}
impl Default for SimpleDatetimeStyleConfig {
fn default() -> Self {
Self {
time_zone: None,
date_style: SimpleDatetimeFormat::Short,
time_style: SimpleDatetimeFormat::Medium,
}
}
}