Enum StringConverter

Source
pub enum StringConverter {
    LengthPrefixed {
        prefix_bits: u8,
    },
    NullTerminated,
    FixedLength {
        length: u32,
    },
}
Expand description

An enum that allows the reading and writing of strings using various methods

Variants§

§

LengthPrefixed

Prefixes the string with length.

This is the default option. The recommended number of bits for the prefix is 32.

Requires 2 bits to store converter for recommended number of bits, otherwise 7 bits to store

Fields

§prefix_bits: u8

The number of bits in the prefix

§

NullTerminated

Terminates the string with a null character (\0). The string must not contain a null character.

This option is recommended if it is possible to guarantee that the string will never contain a null character.

Requires 2 bits to store converter

§

FixedLength

Writes a string with a specified fixed length. If the string is shorter, it will have null characters (\0) appended until it is the right length.

This option is only recommended if it is known in advance how long the string will be.

Requires 34 bits to store converter

Fields

§length: u32

The length of the string

Trait Implementations§

Source§

impl BitConvert<String> for StringConverter

Source§

fn read_value_from<R: BitRead>(&self, reader: &mut R) -> Result<String>

Reads a value from the given reader.
Source§

fn write_value_to<W: BitWrite>( &self, value: &String, writer: &mut W, ) -> Result<()>

Writes this value to the given writer.
Source§

impl BitStore for StringConverter

Source§

fn read_from<R: BitRead>(reader: &mut R) -> Result<Self>

Reads a value from the given reader.
Source§

fn write_to<W: BitWrite>(&self, writer: &mut W) -> Result<()>

Writes this value to the given writer.
Source§

impl Debug for StringConverter

Source§

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

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

impl Default for StringConverter

Source§

fn default() -> Self

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

Auto Trait Implementations§

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.