Enum rmpv::ValueRef

source ·
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§

source§

impl<'a> ValueRef<'a>

source

pub fn to_owned(&self) -> Value

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

pub fn index(&self, index: usize) -> &ValueRef<'_>

source

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

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

pub fn as_array(&self) -> Option<&Vec<ValueRef<'_>>>

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

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

Trait Implementations§

source§

impl<'a> Clone for ValueRef<'a>

source§

fn clone(&self) -> ValueRef<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a> Debug for ValueRef<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a> Display for ValueRef<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

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

source§

fn from(v: &'a [u8]) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a str> for ValueRef<'a>

source§

fn from(v: &'a str) -> Self

Converts to this type from the input type.
source§

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

source§

fn from(v: Vec<(ValueRef<'a>, ValueRef<'a>)>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<Vec<ValueRef<'a>>> for ValueRef<'a>

source§

fn from(v: Vec<ValueRef<'a>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<f32> for ValueRef<'a>

source§

fn from(v: f32) -> Self

Converts to this type from the input type.
source§

impl<'a> From<f64> for ValueRef<'a>

source§

fn from(v: f64) -> Self

Converts to this type from the input type.
source§

impl<'a> From<i16> for ValueRef<'a>

source§

fn from(v: i16) -> Self

Converts to this type from the input type.
source§

impl<'a> From<i32> for ValueRef<'a>

source§

fn from(v: i32) -> Self

Converts to this type from the input type.
source§

impl<'a> From<i64> for ValueRef<'a>

source§

fn from(v: i64) -> Self

Converts to this type from the input type.
source§

impl<'a> From<i8> for ValueRef<'a>

source§

fn from(v: i8) -> Self

Converts to this type from the input type.
source§

impl<'a> From<isize> for ValueRef<'a>

source§

fn from(v: isize) -> Self

Converts to this type from the input type.
source§

impl<'a> From<u16> for ValueRef<'a>

source§

fn from(v: u16) -> Self

Converts to this type from the input type.
source§

impl<'a> From<u32> for ValueRef<'a>

source§

fn from(v: u32) -> Self

Converts to this type from the input type.
source§

impl<'a> From<u64> for ValueRef<'a>

source§

fn from(v: u64) -> Self

Converts to this type from the input type.
source§

impl<'a> From<u8> for ValueRef<'a>

source§

fn from(v: u8) -> Self

Converts to this type from the input type.
source§

impl<'a> From<usize> for ValueRef<'a>

source§

fn from(v: usize) -> Self

Converts to this type from the input type.
source§

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

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

source§

fn from_iter<I: IntoIterator<Item = V>>(iter: I) -> Self

Creates a value from an iterator. Read more
source§

impl<'a> PartialEq for ValueRef<'a>

source§

fn eq(&self, other: &ValueRef<'a>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

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

§

type Error = ValueRef<'a>

The type returned in the event of a conversion error.
source§

fn try_from(val: ValueRef<'a>) -> Result<&'a [u8], Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<ValueRef<'a>> for Utf8StringRef<'a>

§

type Error = ValueRef<'a>

The type returned in the event of a conversion error.
source§

fn try_from(val: ValueRef<'a>) -> Result<Utf8StringRef<'a>, Self::Error>

Performs the conversion.
source§

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

§

type Error = ValueRef<'a>

The type returned in the event of a conversion error.
source§

fn try_from( val: ValueRef<'a> ) -> Result<Vec<(ValueRef<'a>, ValueRef<'a>)>, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<ValueRef<'a>> for Vec<ValueRef<'a>>

§

type Error = ValueRef<'a>

The type returned in the event of a conversion error.
source§

fn try_from(val: ValueRef<'a>) -> Result<Vec<ValueRef<'a>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<ValueRef<'a>> for bool

§

type Error = ValueRef<'a>

The type returned in the event of a conversion error.
source§

fn try_from(val: ValueRef<'a>) -> Result<bool, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<ValueRef<'a>> for f32

§

type Error = ValueRef<'a>

The type returned in the event of a conversion error.
source§

fn try_from(val: ValueRef<'a>) -> Result<f32, Self::Error>

Performs the conversion.
source§

impl<'a> TryFrom<ValueRef<'a>> for u64

§

type Error = ValueRef<'a>

The type returned in the event of a conversion error.
source§

fn try_from(val: ValueRef<'a>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'a> StructuralPartialEq for ValueRef<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for ValueRef<'a>

§

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§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.