use serde::{Deserialize, Deserializer, Serialize, Serializer}; pub use tracing::Level; pub fn serialize(value: &Option, serializer: S) -> Result where S: Serializer, { value .map(|l| l.to_string().to_lowercase()) .serialize(serializer) } pub fn deserialize<'de, D>(deserializer: D) -> Result, D::Error> where D: Deserializer<'de>, { let Some(s) = Option::::deserialize(deserializer)? else { return Ok(None) }; s.parse().map_err(serde::de::Error::custom).map(Some) }