[][src]Trait packs::Extract

pub trait Extract<T>: Sized {
    pub fn extract(from: Value<T>) -> Option<Self>;
}

A trait to denote types which can be extracted out of a Value<T>.

let value : Value<()> = Value::Integer(42);
assert_eq!(i64::extract(value), Some(42))

For each accessibility kind there is an Option variant, treating a Value as a Option<T>, where Value::Null denotes None and every other value is tried to get parsed into Some(t):


// any `Value::Null` is a `None`:
let value : Value<()> = Value::Null;
assert_eq!(<Option<String>>::extract(value), Some(None));

let value : Value<()> = Value::String(String::from("Hello World!"));
assert_eq!(<Option<String>>::extract(value), Some(Some(String::from("Hello World!"))));

Required methods

pub fn extract(from: Value<T>) -> Option<Self>[src]

Loading content...

Implementations on Foreign Types

impl<T> Extract<T> for i64[src]

impl<T> Extract<T> for f64[src]

impl<T> Extract<T> for bool[src]

impl<T> Extract<T> for String[src]

impl<T> Extract<T> for Vec<Value<T>>[src]

impl<T, E: Extract<T>> Extract<T> for Option<E>[src]

Loading content...

Implementors

impl<T> Extract<T> for Bytes[src]

impl<T> Extract<T> for Dictionary<T>[src]

Loading content...