Skip to main content

WriteVarint

Trait WriteVarint 

Source
pub trait WriteVarint {
    // Required methods
    fn write_varint(&mut self, value: u64) -> Result<()>;
    fn write_signed_varint(&mut self, value: i64) -> Result<()>;
}
Expand description

A trait for writing varint integers from a stream.

The API here is explicitly limited to u64 and i64 in order to reduce code size.

§Example

use pw_stream::{Cursor, WriteVarint};

let mut cursor = Cursor::new(vec![0x0; 16]);

cursor.write_varint(0xffff_fffe).unwrap();
cursor.write_signed_varint(i32::MIN.into()).unwrap();

let buffer = cursor.into_inner();
assert_eq!(buffer,vec![
  0xfe, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff,
  0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);

Required Methods§

Source

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

Write an unsigned varint to the stream.

Errors that may be returned are dependant on the underlying implementation.

Source

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

Write a signed varint to the stream.

Errors that may be returned are dependant on the underlying implementation.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<T: AsRef<[u8]> + AsMut<[u8]>> WriteVarint for Cursor<T>