Add string util for #[serde(deserialize_with = "deserialize::to_lowercase")]

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-12-19 20:57:40 +00:00
parent 4150b917d8
commit f91b3b6a6c
2 changed files with 23 additions and 0 deletions

View File

@@ -1,4 +1,5 @@
mod between;
pub mod de;
mod split;
mod tests;
mod unquote;

View File

@@ -0,0 +1,22 @@
use std::fmt;
use serde::de::{Deserializer, Error, Visitor};
struct ToLowercase;
#[inline]
pub fn to_lowercase<'de, D>(deserializer: D) -> Result<String, D::Error>
where
D: Deserializer<'de>,
{
deserializer.deserialize_string(ToLowercase)
}
impl Visitor<'_> for ToLowercase {
type Value = String;
#[inline]
fn visit_str<E: Error>(self, v: &str) -> Result<Self::Value, E> { Ok(v.to_lowercase()) }
fn expecting(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.write_str("String") }
}