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);