Add string util for #[serde(deserialize_with = "deserialize::to_lowercase")]
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
mod between;
|
||||
pub mod de;
|
||||
mod split;
|
||||
mod tests;
|
||||
mod unquote;
|
||||
|
||||
22
src/core/utils/string/de.rs
Normal file
22
src/core/utils/string/de.rs
Normal 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") }
|
||||
}
|
||||
Reference in New Issue
Block a user