Trait gtmpl_value::FromValue[][src]

pub trait FromValue<T> {
    fn from_value(val: &Value) -> Option<T>;
}
Expand description

Convert Value into something.

Required methods

Tries to retrieve T from Value.

Implementations on Foreign Types

Tries to retrieve i64 from Value.

Examples:

use gtmpl_value::{FromValue, Value};

let v: Value = 23i64.into();
let i = i64::from_value(&v);
assert_eq!(i, Some(23i64));

Tries to retrieve u64 from Value.

Examples:

use gtmpl_value::{FromValue, Value};

let v: Value = 23u64.into();
let i = u64::from_value(&v);
assert_eq!(i, Some(23u64));

Tries to retrieve f64 from Value.

Examples:

use gtmpl_value::{FromValue, Value};

let v: Value = 23.1f64.into();
let i = f64::from_value(&v);
assert_eq!(i, Some(23.1f64));

Tries to retrieve String from Value.

Examples:

use gtmpl_value::{FromValue, Value};

let v: Value = "foobar".into();
let s = String::from_value(&v);
assert_eq!(s, Some("foobar".to_owned()));

Tries to retrieve Vec<T> from Value.

Examples:

use gtmpl_value::{FromValue, Value};

let v: Value = vec!(1, 2, 3).into();
let v: Option<Vec<i64>> = Vec::from_value(&v);
assert_eq!(v, Some(vec!(1, 2, 3)));

Tries to retrieve HashMap<String, T> from Value.

Examples:

use gtmpl_value::{FromValue, Value};
use std::collections::HashMap;

let mut m = HashMap::new();
m.insert("a".to_owned(), 1);
let v: Value = m.into();
let m: Option<HashMap<String, i64>> = HashMap::from_value(&v);
assert!(m.is_some());
if let Some(m) = m {
  assert_eq!(m.get("a"), Some(&1));
}

Implementors