Skip to main content

TLVValue

Enum TLVValue 

Source
pub enum TLVValue<'a> {
Show 25 variants S8(i8), S16(i16), S32(i32), S64(i64), U8(u8), U16(u16), U32(u32), U64(u64), False, True, F32(f32), F64(f64), Utf8l(&'a str), Utf16l(&'a str), Utf32l(&'a str), Utf64l(&'a str), Str8l(&'a [u8]), Str16l(&'a [u8]), Str32l(&'a [u8]), Str64l(&'a [u8]), Null, Struct, Array, List, EndCnt,
}
Expand description

A high-level representation of a TLV value.

Combined with TLVTag into a TLV struct it is a convenient way to emit TLV byte sequences.

A TLVValue can be constructed programmatically, or returned from a TLVElement.

Unlike a TLVElement however, a TLVValue does not represent a complete container, but rather, its beginning or end.

Variants§

§

S8(i8)

§

S16(i16)

§

S32(i32)

§

S64(i64)

§

U8(u8)

§

U16(u16)

§

U32(u32)

§

U64(u64)

§

False

§

True

§

F32(f32)

§

F64(f64)

§

Utf8l(&'a str)

§

Utf16l(&'a str)

§

Utf32l(&'a str)

§

Utf64l(&'a str)

§

Str8l(&'a [u8])

§

Str16l(&'a [u8])

§

Str32l(&'a [u8])

§

Str64l(&'a [u8])

§

Null

§

Struct

§

Array

§

List

§

EndCnt

Implementations§

Source§

impl<'a> TLVValue<'a>

Source

pub const fn value_type(&self) -> TLVValueType

Return the value type of the TLV value.

Source

pub const fn i8(value: i8) -> TLVValue<'a>

Create a TLV value as an S8 TLV value.

Source

pub const fn i16(value: i16) -> TLVValue<'a>

Create a TLV value as an S8 or S16 TLV value, depending on whether the value is small enough to fit in an S8 TLV value.

Source

pub const fn i32(value: i32) -> TLVValue<'a>

Create a TLV value as an S8, S16, or S32 TLV value, depending on whether the value is small enough to fit in an S8 or S16 TLV value.

Source

pub const fn i64(value: i64) -> TLVValue<'a>

Create a TLV value as an S8, S16, S32, or S64 TLV value, depending on whether the value is small enough to fit in an S8, S16, or S32 TLV value.

Source

pub const fn u8(value: u8) -> TLVValue<'a>

Create a TLV value as a U8 TLV value.

Source

pub const fn u16(value: u16) -> TLVValue<'a>

Create a TLV value as a U8 or U16 TLV value, depending on whether the value is small enough to fit in a U8 TLV value.

Source

pub const fn u32(value: u32) -> TLVValue<'a>

Create a TLV value as a U8, U16, or U32 TLV value, depending on whether the value is small enough to fit in a U8 or U16 TLV value.

Source

pub const fn u64(value: u64) -> TLVValue<'a>

Create a TLV value as a U8, U16, U32, or U64 TLV value, depending on whether the value is small enough to fit in a U8, U16, or U32 TLV value.

Source

pub const fn f32(value: f32) -> TLVValue<'a>

Create a TLV value as an F32 TLV value.

Source

pub const fn f64(value: f64) -> TLVValue<'a>

Create a TLV value as an F64 TLV value.

Source

pub const fn utf8(value: &'a str) -> TLVValue<'a>

Create a TLV value as a UTF-8 TLV value. The length of the string is encoded as 1, 2, 4 or 8 octets, depending on the length of the string.

Source

pub const fn str(value: &'a [u8]) -> TLVValue<'a>

Create a TLV value as an octet string TLV value. The length of the string is encoded as 1, 2, 4 or 8 octets, depending on the length of the string.

Source

pub const fn struct() -> TLVValue<'a>

Create a TLV value of type Struct (start).

Source

pub const fn structure() -> TLVValue<'a>

Create a TLV value of type Struct (start).

Source

pub const fn array() -> TLVValue<'a>

Create a TLV value of type Array (start).

Source

pub const fn list() -> TLVValue<'a>

Create a TLV value of type List (start).

Source

pub const fn end_container() -> TLVValue<'a>

Create a TLV value of type EndCnt (container end).

Source

pub const fn null() -> TLVValue<'a>

Create a TLV value of type Null.

Source

pub const fn bool(value: bool) -> TLVValue<'a>

Create a TLV value of type boolean (True or False).

Source

pub fn iter(&self) -> TLVValueIter<'a, &TLVValue<'a>>

Return an iterator over the bytes of the TLV value.

Source

pub fn into_iterator(self) -> TLVValueIter<'a, TLVValue<'a>>

Converts itself into an iterator over the bytes of the TLV value.

Trait Implementations§

Source§

impl<'a> Clone for TLVValue<'a>

Source§

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

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for TLVValue<'a>

Source§

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

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

impl Display for TLVValue<'_>

Source§

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

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

impl<'a> FromTLV<'a> for TLVValue<'a>

Source§

fn from_tlv(element: &TLVElement<'a>) -> Result<TLVValue<'a>, Error>

Deserialize the type from a TLV-encoded element.
Source§

fn init_from_tlv(element: TLVElement<'a>) -> impl Init<Self, Error>

Generate an in-place initializer for the type that initializes the type from a TLV-encoded element.
Source§

fn nullable_from_tlv(element: &TLVElement<'a>) -> Result<Self, Error>

Deserialize the type from a TLV-encoded element. Read more
Source§

fn init_nullable_from_tlv(element: TLVElement<'a>) -> impl Init<Self, Error>

Generate an in-place initializer for the type that initializes the type from a TLV-encoded element. Read more
Source§

impl<'a> IntoIterator for TLVValue<'a>

Source§

type Item = u8

The type of the elements being iterated over.
Source§

type IntoIter = TLVValueIter<'a, TLVValue<'a>>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> <TLVValue<'a> as IntoIterator>::IntoIter

Creates an iterator from a value. Read more
Source§

impl<'a> IntoIterator for &TLVValue<'a>

Source§

type Item = u8

The type of the elements being iterated over.
Source§

type IntoIter = TLVValueIter<'a, &TLVValue<'a>>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> <&TLVValue<'a> as IntoIterator>::IntoIter

Creates an iterator from a value. Read more
Source§

impl<'a> PartialEq for TLVValue<'a>

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl<'a> StructuralPartialEq for TLVValue<'a>

Source§

impl ToTLV for TLVValue<'_>

Source§

fn to_tlv<W>(&self, tag: &TLVTag, tw: W) -> Result<(), Error>
where W: TLVWrite,

Serialize the type to a TLV-encoded stream.
Source§

fn tlv_iter(&self, tag: TLVTag) -> impl Iterator<Item = Result<TLV<'_>, Error>>

Serialize the type as an iterator of TLV instances by potentially borrowing data from the type.
Source§

fn nullable_to_tlv<W>(&self, tag: &TLVTag, tw: W) -> Result<(), Error>
where W: TLVWrite,

Serialize the type to a TLV-encoded stream. Read more
Source§

fn nullable_tlv_iter( &self, tag: TLVTag, ) -> impl Iterator<Item = Result<TLV<'_>, Error>>

Serialize the type as an iterator of TLV instances by potentially borrowing data from the type. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for TLVValue<'a>

§

impl<'a> RefUnwindSafe for TLVValue<'a>

§

impl<'a> Send for TLVValue<'a>

§

impl<'a> Sync for TLVValue<'a>

§

impl<'a> Unpin for TLVValue<'a>

§

impl<'a> UnsafeUnpin for TLVValue<'a>

§

impl<'a> UnwindSafe for TLVValue<'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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, E> Init<T, E> for T

Source§

unsafe fn __init(self, slot: *mut T) -> Result<(), E>

Initializes slot. Read more
Source§

fn chain<F>(self, f: F) -> ChainInit<Self, F, T, E>
where F: FnOnce(&mut T) -> Result<(), E>,

First initializes the value using self then calls the function f with the initialized value. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, I> IntoFallibleInit<T> for I
where I: Init<T>,

Source§

fn into_fallible<E>(self) -> impl Init<T, E>

Convert the infallible initializer to a fallible one.
Source§

impl<Source, Target> OctetsInto<Target> for Source
where Target: OctetsFrom<Source>,

Source§

type Error = <Target as OctetsFrom<Source>>::Error

Source§

fn try_octets_into( self, ) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
Source§

fn octets_into(self) -> Target
where Self::Error: Into<Infallible>,

Performs an infallible conversion.
Source§

impl<T, E> PinInit<T, E> for T

Source§

unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), E>

Initializes slot. Read more
Source§

fn pin_chain<F>(self, f: F) -> ChainPinInit<Self, F, T, E>
where F: FnOnce(Pin<&mut T>) -> Result<(), E>,

First initializes the value using self then calls the function f with the initialized value. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

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

Source§

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§

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

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V