pub fn from_value<'de, T: Deserialize<'de>>(
value: &'de Value,
) -> Result<T, DeError>Expand description
Convert a Value back into any Deserialize type.
This is the inverse of to_value. Enums are supported:
Value::Str("Variant")deserializes as a unit variant.Value::Struct({"__kind__": "Variant", ...})deserializes as a struct variant.
§Errors
Returns an error if the value shape doesn’t match the target type.
§Examples
use md_tmpl_core::Value;
use serde::Deserialize;
#[derive(Deserialize, Debug, PartialEq)]
struct Agent {
name: String,
score: i64,
}
let val = Value::new_struct([
("name", Value::Str("Alice".into())),
("score", Value::Int(95)),
]);
let agent: Agent = md_tmpl_core::from_value(&val).unwrap();
assert_eq!(
agent,
Agent {
name: "Alice".into(),
score: 95
}
);