Skip to main content

FlattenToTuple

Struct FlattenToTuple 

Source
pub struct FlattenToTuple<'sval, S> { /* private fields */ }
Expand description

A stream that flattens the fields of a value onto a tuple.

Implementations§

Source§

impl<'sval, S: Stream<'sval>> FlattenToTuple<'sval, S>

Source

pub fn new(stream: S, offset: isize) -> Self

Wrap the given stream.

The offset is the current length of the tuple being flattened onto. Call FlattenToTuple::end after streaming a value to get the new length of the tuple.

Source

pub fn end(self) -> (isize, S)

Finish flattening a value.

This method returns the length of the map after flattening that can be used to reconstruct a FlattenToTuple for a future value.

Trait Implementations§

Source§

impl<'sval, S: Stream<'sval>> Stream<'sval> for FlattenToTuple<'sval, S>

Source§

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

Recurse into a nested value.
Source§

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

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

fn null(&mut self) -> Result

Stream null, the absence of any other meaningful value. Read more
Source§

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

Stream an unsigned 8bit integer. Read more
Source§

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

Stream an unsigned 16bit integer. Read more
Source§

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

Stream an unsigned 32bit integer. Read more
Source§

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

Stream an unsigned 64bit integer. Read more
Source§

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

Stream an unsigned 128bit integer. Read more
Source§

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

Stream a signed 8bit integer. Read more
Source§

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

Stream a signed 16bit integer. Read more
Source§

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

Stream a signed 32bit integer. Read more
Source§

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

Stream a signed 64bit integer. Read more
Source§

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

Stream a signed 128bit integer. Read more
Source§

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

Stream a 32bit binary floating point number. Read more
Source§

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

Stream a 64bit binary floating point number. Read more
Source§

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

Stream a boolean. Read more
Source§

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

Start a UTF8 text string. Read more
Source§

fn text_end(&mut self) -> Result

Complete a UTF8 text string. Read more
Source§

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

Stream a fragment of UTF8 text. Read more
Source§

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

Stream a fragment of UTF8 text, borrowed for some arbitrarily short lifetime. Read more
Source§

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

Start a bitstring. Read more
Source§

fn binary_end(&mut self) -> Result

Complete a bitstring. Read more
Source§

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

Stream a fragment of a bitstring. Read more
Source§

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

Stream a fragment of a bitstring, borrowed for some arbitrarily short lifetime. Read more
Source§

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

Start a heterogeneous mapping of arbitrary keys to values. Read more
Source§

fn map_end(&mut self) -> Result

Complete a heterogeneous mapping of arbitrary keys to values. Read more
Source§

fn map_key_begin(&mut self) -> Result

Start a key in a key-value mapping. Read more
Source§

fn map_key_end(&mut self) -> Result

Complete a key in a key-value mapping. Read more
Source§

fn map_value_begin(&mut self) -> Result

Start a value in a key-value mapping. Read more
Source§

fn map_value_end(&mut self) -> Result

Complete a value in a key-value mapping. Read more
Source§

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

Start a heterogeneous sequence of values. Read more
Source§

fn seq_end(&mut self) -> Result

Complete a heterogeneous sequence of values. Read more
Source§

fn seq_value_begin(&mut self) -> Result

Start an individual value in a sequence. Read more
Source§

fn seq_value_end(&mut self) -> Result

Complete an individual value in a sequence. Read more
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, tag: Option<&Tag>, label: Option<&Label<'_>>, index: Option<&Index>, ) -> Result

Complete a tagged value. Read more
Source§

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

Stream a standalone tag. Read more
Source§

fn tag_hint(&mut self, tag: &Tag) -> Result

Use a tag as a hint without streaming it as a value. 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. Read more
Source§

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

Start a field in a record. Read more
Source§

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

Complete a field in a record. Read more
Source§

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

Complete a record. Read more
Source§

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

Start a tuple. Read more
Source§

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

Start a field in a tuple. Read more
Source§

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

Complete a field in a tuple. Read more
Source§

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

Complete a tuple. Read more
Source§

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

Begin a type that may be treated as either a record or a tuple. Read more
Source§

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

Begin a field in a type that may be treated as either a record or a tuple. Read more
Source§

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

Complete a field in a type that may be treated as either a record or a tuple. Read more
Source§

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

Complete a type that may be treated as either a record or a tuple. Read more
Source§

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

Start a variant in an enumerated type. Read more
Source§

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

Complete a variant in an enumerated type. Read more

Auto Trait Implementations§

§

impl<'sval, S> Freeze for FlattenToTuple<'sval, S>
where S: Freeze,

§

impl<'sval, S> RefUnwindSafe for FlattenToTuple<'sval, S>
where S: RefUnwindSafe,

§

impl<'sval, S> Send for FlattenToTuple<'sval, S>
where S: Send,

§

impl<'sval, S> Sync for FlattenToTuple<'sval, S>
where S: Sync,

§

impl<'sval, S> Unpin for FlattenToTuple<'sval, S>
where S: Unpin,

§

impl<'sval, S> UnsafeUnpin for FlattenToTuple<'sval, S>
where S: UnsafeUnpin,

§

impl<'sval, S> UnwindSafe for FlattenToTuple<'sval, S>
where S: UnwindSafe,

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

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>,

Source§

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.