VBRInteger

Trait VBRInteger 

Source
pub trait VBRInteger: Integer {
    // Required methods
    fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
       where R: BitRead + ?Sized,
             Self: Sized;
    fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>(
        self,
        writer: &mut W,
    ) -> Result<()>;
}
Expand description

This trait is for integer types which can be read or written to a bit stream as variable-width integers.

It unifies signed and unsigned integer types by delegating reads and write to the signed and unsigned vbr reading and writing methods as appropriate.

Required Methods§

Source

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Reads a value of ourself from the stream using a variable width integer.

§Errors

Passes along any I/O error from the underlying stream.

Source

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Writes ourself to the stream using a variable width integer.

§Errors

Passes along any I/O error from the underlying stream.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl VBRInteger for Option<NonZero<u8>>

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for Option<NonZero<u16>>

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for Option<NonZero<u32>>

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for Option<NonZero<u64>>

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for Option<NonZero<u128>>

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for i8

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for i16

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for i32

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for i64

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for i128

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for u8

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for u16

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for u32

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for u64

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for u128

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for NonZero<u8>

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for NonZero<u16>

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for NonZero<u32>

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for NonZero<u64>

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl VBRInteger for NonZero<u128>

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Source§

impl<const SIZE: usize, I: VBRInteger + Copy + Default> VBRInteger for [I; SIZE]

Source§

fn read_vbr<const FIELD_SIZE: u32, R>(reader: &mut R) -> Result<Self>
where R: BitRead + ?Sized, Self: Sized,

Source§

fn write_vbr<const FIELD_SIZE: u32, W: BitWrite + ?Sized>( self, writer: &mut W, ) -> Result<()>

Implementors§