#[cfg(feature = "django")]
#[derive(Clone, Debug, Default, serde::Serialize, serde::Deserialize)]
#[serde(default, deny_unknown_fields)]
pub struct Channels {
pub capacity: Option<usize>,
#[serde(
serialize_with = "serialize_expiry",
deserialize_with = "claviron::helpers::de::deserialize_optional_duration"
)]
pub expiry: Option<std::time::Duration>,
}
#[cfg(feature = "django")]
fn serialize_expiry<S: serde::Serializer>(
value: &Option<std::time::Duration>,
serializer: S,
) -> Result<S::Ok, S::Error> {
match value {
Some(expiry) => {
serializer.collect_str(&format_args!("{}ms", expiry.as_millis()))
}
None => serializer.serialize_none(),
}
}