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))) + } +}