From 1a17f8ea9905b06fd220102f915ea2703063e0ba Mon Sep 17 00:00:00 2001 From: itsscb Date: Tue, 29 Apr 2025 22:16:58 +0200 Subject: [PATCH] feat: impl deserialize manually to fix case sensitivity --- src/script/parameter/datatype.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/script/parameter/datatype.rs b/src/script/parameter/datatype.rs index b0f440f..4d876bb 100644 --- a/src/script/parameter/datatype.rs +++ b/src/script/parameter/datatype.rs @@ -2,7 +2,7 @@ use std::{fmt::Display, str::FromStr}; use serde::{Deserialize, Serialize}; -#[derive(Deserialize, Serialize, Clone, Debug)] +#[derive(Serialize, Clone, Debug)] pub enum DataType { DateTime, String, @@ -49,3 +49,14 @@ impl FromStr for DataType { } } } + +impl<'de> Deserialize<'de> for DataType { + fn deserialize(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + let s = String::deserialize(deserializer)?; + DataType::from_str(&s) + .map_err(|_| serde::de::Error::custom(format!("invalid Datatype: {}", s))) + } +}