use serde::Deserialize;
use serde_json::Value;
pub fn validate_and_convert<T>(value: Value) -> Result<T, String>
where
T: for<'de> Deserialize<'de>,
{
serde_json::from_value::<T>(value)
.map_err(|e| format!("JSON Validation and conversion failed: {}", e))
}
pub fn validate_json<T>(value: Value) -> Result<Value, String>
where
T: for<'de> Deserialize<'de>,
{
match serde_json::from_value::<T>(value.clone()) {
Ok(_) => Ok(value),
Err(e) => Err(format!("JSON Validation failed: {}", e)),
}
}
pub fn parse_json<T>(json_str: &str) -> Result<T, String>
where
T: for<'de> Deserialize<'de>,
{
serde_json::from_str::<T>(json_str).map_err(|e| format!("JSON Parsing failed: {}", e))
}