[][src]Enum rmpv::ValueRef

pub enum ValueRef<'a> {
    Nil,
    Boolean(bool),
    Integer(Integer),
    F32(f32),
    F64(f64),
    String(Utf8StringRef<'a>),
    Binary(&'a [u8]),
    Array(Vec<ValueRef<'a>>),
    Map(Vec<(ValueRef<'a>, ValueRef<'a>)>),
    Ext(i8&'a [u8]),
}

Variants

Nil

Nil represents nil.

Boolean(bool)

Boolean represents true or false.

Integer(Integer)

Integer represents an integer.

A value of an Integer object is limited from -(2^63) upto (2^64)-1.

F32(f32)

A 32-bit floating point number.

F64(f64)

A 64-bit floating point number.

String(Utf8StringRef<'a>)

String extending Raw type represents a UTF-8 string.

Binary(&'a [u8])

Binary extending Raw type represents a byte array.

Array(Vec<ValueRef<'a>>)

Array represents a sequence of objects.

Map(Vec<(ValueRef<'a>, ValueRef<'a>)>)

Map represents key-value pairs of objects.

Ext(i8&'a [u8])

Extended implements Extension interface: represents a tuple of type information and a byte array where type information is an integer whose meaning is defined by applications.

Implementations

impl<'a> ValueRef<'a>[src]

pub fn to_owned(&self) -> Value[src]

Converts the current non-owning value to an owned Value.

This is achieved by deep copying all underlying structures and borrowed buffers.

Panics

Panics in unable to allocate memory to keep all internal structures and buffers.

Examples

use rmpv::{Value, ValueRef};

let val = ValueRef::Array(vec![
   ValueRef::Nil,
   ValueRef::from(42),
   ValueRef::Array(vec![
       ValueRef::from("le message"),
   ])
]);

let expected = Value::Array(vec![
    Value::Nil,
    Value::from(42),
    Value::Array(vec![
        Value::String("le message".into())
    ])
]);

assert_eq!(expected, val.to_owned());

pub fn index(&self, index: usize) -> &ValueRef[src]

pub fn as_u64(&self) -> Option<u64>[src]

If the ValueRef is an integer, return or cast it to a u64. Returns None otherwise.

Examples

use rmpv::ValueRef;

assert_eq!(Some(42), ValueRef::from(42).as_u64());

pub fn as_array(&self) -> Option<&Vec<ValueRef>>[src]

If the ValueRef is an Array, returns the associated vector. Returns None otherwise.

Examples

use rmpv::ValueRef;

let val = ValueRef::Array(vec![ValueRef::Nil, ValueRef::Boolean(true)]);

assert_eq!(Some(&vec![ValueRef::Nil, ValueRef::Boolean(true)]), val.as_array());
assert_eq!(None, ValueRef::Nil.as_array());

pub fn into_array(self) -> Option<Vec<ValueRef<'a>>>[src]

Trait Implementations

impl<'a> Clone for ValueRef<'a>[src]

impl<'a> Debug for ValueRef<'a>[src]

impl<'a> Display for ValueRef<'a>[src]

impl<'a> From<&'a [u8]> for ValueRef<'a>[src]

impl<'a> From<&'a str> for ValueRef<'a>[src]

impl<'a> From<Vec<(ValueRef<'a>, ValueRef<'a>)>> for ValueRef<'a>[src]

impl<'a> From<Vec<ValueRef<'a>>> for ValueRef<'a>[src]

impl<'a> From<f32> for ValueRef<'a>[src]

impl<'a> From<f64> for ValueRef<'a>[src]

impl<'a> From<i16> for ValueRef<'a>[src]

impl<'a> From<i32> for ValueRef<'a>[src]

impl<'a> From<i64> for ValueRef<'a>[src]

impl<'a> From<i8> for ValueRef<'a>[src]

impl<'a> From<isize> for ValueRef<'a>[src]

impl<'a> From<u16> for ValueRef<'a>[src]

impl<'a> From<u32> for ValueRef<'a>[src]

impl<'a> From<u64> for ValueRef<'a>[src]

impl<'a> From<u8> for ValueRef<'a>[src]

impl<'a> From<usize> for ValueRef<'a>[src]

impl<'a, V> FromIterator<V> for ValueRef<'a> where
    V: Into<ValueRef<'a>>, 
[src]

Note that an Iterator<Item = u8> will be collected into an Array, rather than a Binary

impl<'a> PartialEq<ValueRef<'a>> for ValueRef<'a>[src]

impl<'a> StructuralPartialEq for ValueRef<'a>[src]

impl<'a> TryFrom<ValueRef<'a>> for u64[src]

type Error = ValueRef<'a>

The type returned in the event of a conversion error.

impl<'a> TryFrom<ValueRef<'a>> for bool[src]

type Error = ValueRef<'a>

The type returned in the event of a conversion error.

impl<'a> TryFrom<ValueRef<'a>> for Vec<ValueRef<'a>>[src]

type Error = ValueRef<'a>

The type returned in the event of a conversion error.

impl<'a> TryFrom<ValueRef<'a>> for Vec<(ValueRef<'a>, ValueRef<'a>)>[src]

type Error = ValueRef<'a>

The type returned in the event of a conversion error.

impl<'a> TryFrom<ValueRef<'a>> for &'a [u8][src]

type Error = ValueRef<'a>

The type returned in the event of a conversion error.

impl<'a> TryFrom<ValueRef<'a>> for f32[src]

type Error = ValueRef<'a>

The type returned in the event of a conversion error.

impl<'a> TryFrom<ValueRef<'a>> for Utf8StringRef<'a>[src]

type Error = ValueRef<'a>

The type returned in the event of a conversion error.

Auto Trait Implementations

impl<'a> RefUnwindSafe for ValueRef<'a>

impl<'a> Send for ValueRef<'a>

impl<'a> Sync for ValueRef<'a>

impl<'a> Unpin for ValueRef<'a>

impl<'a> UnwindSafe for ValueRef<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.