use serde::{Deserializer, Deserialize};
pub(crate) fn deserialize_as_string<'de, D>(deserializer: D) -> Result<Option<String>, D::Error>
where
D: Deserializer<'de>,
{
let opt = Option::deserialize(deserializer)?;
match opt {
Some(serde_json::Value::Number(n)) => Ok(Some(n.to_string())),
Some(serde_json::Value::String(s)) => Ok(Some(s)),
_ => Ok(None),
}
}