Struct sval_buffer::ValueBuf

source ·
pub struct ValueBuf<'sval> { /* private fields */ }
Expand description

Buffer arbitrary values into a tree-like structure.

This type requires the alloc or std features, otherwise most methods will fail.

Implementations§

source§

impl<'sval> ValueBuf<'sval>

source

pub fn new() -> Self

Create a new empty value buffer.

source

pub fn collect(v: &'sval impl Value + ?Sized) -> Result<Self, Error>

Buffer a value.

This method will fail if the alloc feature is not enabled.

source

pub fn is_complete(&self) -> bool

Whether or not the contents of the value buffer are complete.

source

pub fn clear(&mut self)

Clear this buffer so it can be re-used for future values.

source

pub fn to_value(&self) -> Value<'sval>

Get an independent immutable value from this buffer.

source

pub fn into_value(self) -> Value<'sval>

Convert this buffer into an immutable value.

source

pub fn into_owned(self) -> Result<ValueBuf<'static>, Error>

Fully buffer any borrowed data, returning a buffer that doesn’t borrow anything.

This method will fail if the alloc feature is not enabled.

source§

impl ValueBuf<'static>

source

pub fn collect_owned(v: impl Value) -> Result<Self, Error>

Fully buffer a value, including any internal borrowed data.

This method will fail if the alloc feature is not enabled.

Trait Implementations§

source§

impl<'sval> Debug for ValueBuf<'sval>

source§

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

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

impl<'sval> Default for ValueBuf<'sval>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'sval> Stream<'sval> for ValueBuf<'sval>

source§

fn null(&mut self) -> Result

Stream null, the absence of any other meaningful value.
source§

fn bool(&mut self, value: bool) -> Result

Stream a boolean.
source§

fn text_begin(&mut self, _: Option<usize>) -> Result

Start a UTF8 text string.
source§

fn text_fragment(&mut self, fragment: &'sval str) -> Result

Stream a fragment of UTF8 text.
source§

fn text_fragment_computed(&mut self, fragment: &str) -> Result

Stream a fragment of UTF8 text, borrowed for some arbitrarily short lifetime.
source§

fn text_end(&mut self) -> Result

Complete a UTF8 text string.
source§

fn binary_begin(&mut self, _: Option<usize>) -> Result

Start a bitstring.
source§

fn binary_fragment(&mut self, fragment: &'sval [u8]) -> Result

Stream a fragment of a bitstring.
source§

fn binary_fragment_computed(&mut self, fragment: &[u8]) -> Result

Stream a fragment of a bitstring, borrowed for some arbitrarily short lifetime.
source§

fn binary_end(&mut self) -> Result

Complete a bitstring.
source§

fn u8(&mut self, value: u8) -> Result

Stream an unsigned 8bit integer.
source§

fn u16(&mut self, value: u16) -> Result

Stream an unsigned 16bit integer.
source§

fn u32(&mut self, value: u32) -> Result

Stream an unsigned 32bit integer.
source§

fn u64(&mut self, value: u64) -> Result

Stream an unsigned 64bit integer.
source§

fn u128(&mut self, value: u128) -> Result

Stream an unsigned 128bit integer.
source§

fn i8(&mut self, value: i8) -> Result

Stream a signed 8bit integer.
source§

fn i16(&mut self, value: i16) -> Result

Stream a signed 16bit integer.
source§

fn i32(&mut self, value: i32) -> Result

Stream a signed 32bit integer.
source§

fn i64(&mut self, value: i64) -> Result

Stream a signed 64bit integer.
source§

fn i128(&mut self, value: i128) -> Result

Stream a signed 128bit integer.
source§

fn f32(&mut self, value: f32) -> Result

Stream a 32bit binary floating point number.
source§

fn f64(&mut self, value: f64) -> Result

Stream a 64bit binary floating point number.
source§

fn map_begin(&mut self, num_entries_hint: Option<usize>) -> Result

Start a homogenous mapping of arbitrary keys to values.
source§

fn map_key_begin(&mut self) -> Result

Start a key in a key-value mapping.
source§

fn map_key_end(&mut self) -> Result

Complete a key in a key-value mapping.
source§

fn map_value_begin(&mut self) -> Result

Start a value in a key-value mapping.
source§

fn map_value_end(&mut self) -> Result

Complete a value in a key-value mapping.
source§

fn map_end(&mut self) -> Result

Complete a homogenous mapping of arbitrary keys to values.
source§

fn seq_begin(&mut self, num_entries_hint: Option<usize>) -> Result

Start a homogenous sequence of values.
source§

fn seq_value_begin(&mut self) -> Result

Start an individual value in a sequence.
source§

fn seq_value_end(&mut self) -> Result

Complete an individual value in a sequence.
source§

fn seq_end(&mut self) -> Result

Complete a homogenous sequence of values.
source§

fn enum_begin( &mut self, tag: Option<&Tag>, label: Option<&Label<'_>>, index: Option<&Index> ) -> Result

Start a variant in an enumerated type.
source§

fn enum_end( &mut self, _: Option<&Tag>, _: Option<&Label<'_>>, _: Option<&Index> ) -> Result

Complete a variant in an enumerated type.
source§

fn tagged_begin( &mut self, tag: Option<&Tag>, label: Option<&Label<'_>>, index: Option<&Index> ) -> Result

Start a tagged value. Read more
source§

fn tagged_end( &mut self, _: Option<&Tag>, _: Option<&Label<'_>>, _: Option<&Index> ) -> Result

Complete a tagged value.
source§

fn tag( &mut self, tag: Option<&Tag>, label: Option<&Label<'_>>, index: Option<&Index> ) -> Result

Stream a standalone tag. Read more
source§

fn record_begin( &mut self, tag: Option<&Tag>, label: Option<&Label<'_>>, index: Option<&Index>, num_entries: Option<usize> ) -> Result

Start a record type. Read more
source§

fn record_value_begin(&mut self, tag: Option<&Tag>, label: &Label<'_>) -> Result

Start a field in a record.
source§

fn record_value_end(&mut self, _: Option<&Tag>, _: &Label<'_>) -> Result

Complete a field in a record.
source§

fn record_end( &mut self, _: Option<&Tag>, _: Option<&Label<'_>>, _: Option<&Index> ) -> Result

Complete a record type.
source§

fn tuple_begin( &mut self, tag: Option<&Tag>, label: Option<&Label<'_>>, index: Option<&Index>, num_entries: Option<usize> ) -> Result

Start a tuple type. Read more
source§

fn tuple_value_begin(&mut self, tag: Option<&Tag>, index: &Index) -> Result

Start a field in a tuple.
source§

fn tuple_value_end(&mut self, _: Option<&Tag>, _: &Index) -> Result

Complete a field in a tuple.
source§

fn tuple_end( &mut self, _: Option<&Tag>, _: Option<&Label<'_>>, _: Option<&Index> ) -> Result

Complete a tuple type.
source§

fn value<V>(&mut self, v: &'sval V) -> Result<(), Error>where V: Value + ?Sized,

Recurse into a nested value.
source§

fn value_computed<V>(&mut self, v: &V) -> Result<(), Error>where V: Value + ?Sized,

Recurse into a nested value, borrowed for some arbitrarily short lifetime.
source§

impl<'a> Value for ValueBuf<'a>

source§

fn stream<'sval, S: Stream<'sval> + ?Sized>( &'sval self, stream: &mut S ) -> Result

Stream this value through a Stream.
source§

fn to_bool(&self) -> Option<bool>

Try convert this value into a boolean.
source§

fn to_f32(&self) -> Option<f32>

Try convert this value into a 32bit binary floating point number.
source§

fn to_f64(&self) -> Option<f64>

Try convert this value into a 64bit binary floating point number.
source§

fn to_i8(&self) -> Option<i8>

Try convert this value into a signed 8bit integer.
source§

fn to_i16(&self) -> Option<i16>

Try convert this value into a signed 16bit integer.
source§

fn to_i32(&self) -> Option<i32>

Try convert this value into a signed 32bit integer.
source§

fn to_i64(&self) -> Option<i64>

Try convert this value into a signed 64bit integer.
source§

fn to_i128(&self) -> Option<i128>

Try convert this value into a signed 128bit integer.
source§

fn to_u8(&self) -> Option<u8>

Try convert this value into an unsigned 8bit integer.
source§

fn to_u16(&self) -> Option<u16>

Try convert this value into an unsigned 16bit integer.
source§

fn to_u32(&self) -> Option<u32>

Try convert this value into an unsigned 32bit integer.
source§

fn to_u64(&self) -> Option<u64>

Try convert this value into an unsigned 64bit integer.
source§

fn to_u128(&self) -> Option<u128>

Try convert this value into an unsigned 128bit integer.
source§

fn to_text(&self) -> Option<&str>

Try convert this value into a text string.
source§

fn to_binary(&self) -> Option<&[u8]>

Try convert this value into a bitstring.
source§

impl<'sval> ValueRef<'sval> for ValueBuf<'sval>

source§

fn stream_ref<S: Stream<'sval> + ?Sized>(&self, stream: &mut S) -> Result

Stream this value through a Stream.

Auto Trait Implementations§

§

impl<'sval> RefUnwindSafe for ValueBuf<'sval>

§

impl<'sval> Send for ValueBuf<'sval>

§

impl<'sval> Sync for ValueBuf<'sval>

§

impl<'sval> Unpin for ValueBuf<'sval>

§

impl<'sval> UnwindSafe for ValueBuf<'sval>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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, U> TryFrom<U> for Twhere 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 Twhere 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.