Function serde_dhall::from_simple_value
source · pub fn from_simple_value<T>(v: SimpleValue) -> Result<T>where
T: DeserializeOwned,
Expand description
Deserialize a Rust value from a Dhall SimpleValue
.
Example
use std::collections::BTreeMap;
use serde::Deserialize;
// We use serde's derive feature
#[derive(Deserialize)]
struct Point {
x: u64,
y: u64,
}
// Some Dhall data
let mut data = BTreeMap::new();
data.insert(
"x".to_string(),
serde_dhall::SimpleValue::Num(serde_dhall::NumKind::Natural(1))
);
data.insert(
"y".to_string(),
serde_dhall::SimpleValue::Num(serde_dhall::NumKind::Natural(2))
);
let data = serde_dhall::SimpleValue::Record(data);
// Parse the Dhall value as a Point.
let point: Point = serde_dhall::from_simple_value(data)?;
assert_eq!(point.x, 1);
assert_eq!(point.y, 2);