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;
|
mod between;
|
||||||
|
pub mod de;
|
||||||
mod split;
|
mod split;
|
||||||
mod tests;
|
mod tests;
|
||||||
mod unquote;
|
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