Trait dusk_varint::VarInt [−][src]
pub trait VarInt: Sized + Copy { fn required_space(self) -> usize; fn decode_var(src: &[u8]) -> Option<(Self, usize)>; fn encode_var(self, src: &mut [u8]) -> usize; }
Expand description
Varint (variable length integer) encoding, as described in https://developers.google.com/protocol-buffers/docs/encoding.
Uses zigzag encoding (also described there) for signed integer representation.
Required methods
fn required_space(self) -> usize
[src]
fn required_space(self) -> usize
[src]Returns the number of bytes this number needs in its encoded form. Note: This varies depending on the actual number you want to encode.
fn decode_var(src: &[u8]) -> Option<(Self, usize)>
[src]
fn decode_var(src: &[u8]) -> Option<(Self, usize)>
[src]Decode a value from the slice. Returns the value and the number of bytes read from the slice (can be used to read several consecutive values from a big slice) return None if all bytes has MSB set.
fn encode_var(self, src: &mut [u8]) -> usize
[src]
fn encode_var(self, src: &mut [u8]) -> usize
[src]Encode a value into the slice. The slice must be at least required_space()
bytes long.
The number of bytes taken by the encoded integer is returned.
Implementors
impl VarInt for i8
[src]
impl VarInt for i8
[src]fn required_space(self) -> usize
[src]
fn decode_var(src: &[u8]) -> Option<(Self, usize)>
[src]
fn encode_var(self, dst: &mut [u8]) -> usize
[src]
impl VarInt for i16
[src]
impl VarInt for i16
[src]fn required_space(self) -> usize
[src]
fn decode_var(src: &[u8]) -> Option<(Self, usize)>
[src]
fn encode_var(self, dst: &mut [u8]) -> usize
[src]
impl VarInt for i32
[src]
impl VarInt for i32
[src]fn required_space(self) -> usize
[src]
fn decode_var(src: &[u8]) -> Option<(Self, usize)>
[src]
fn encode_var(self, dst: &mut [u8]) -> usize
[src]
impl VarInt for i64
[src]
impl VarInt for i64
[src]fn required_space(self) -> usize
[src]
fn decode_var(src: &[u8]) -> Option<(Self, usize)>
[src]
fn encode_var(self, dst: &mut [u8]) -> usize
[src]
impl VarInt for u8
[src]
impl VarInt for u8
[src]fn required_space(self) -> usize
[src]
fn decode_var(src: &[u8]) -> Option<(Self, usize)>
[src]
fn encode_var(self, dst: &mut [u8]) -> usize
[src]
impl VarInt for u16
[src]
impl VarInt for u16
[src]fn required_space(self) -> usize
[src]
fn decode_var(src: &[u8]) -> Option<(Self, usize)>
[src]
fn encode_var(self, dst: &mut [u8]) -> usize
[src]
impl VarInt for u32
[src]
impl VarInt for u32
[src]fn required_space(self) -> usize
[src]
fn decode_var(src: &[u8]) -> Option<(Self, usize)>
[src]
fn encode_var(self, dst: &mut [u8]) -> usize
[src]
impl VarInt for u64
[src]
impl VarInt for u64
[src]