Trait integer_encoding::VarInt
[−]
[src]
pub trait VarInt: Sized + Copy { fn required_space(self) -> usize; fn decode_var(&[u8]) -> (Self, usize); fn encode_var(self, &mut [u8]) -> usize; fn decode_var_vec(v: &Vec<u8>) -> (Self, usize) { ... } fn encode_var_vec(self) -> Vec<u8> { ... } }
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
Returns the number of bytes this number needs in its encoded form.
fn decode_var(&[u8]) -> (Self, usize)
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)
fn encode_var(self, &mut [u8]) -> usize
Encode a value into the slice.
Provided Methods
fn decode_var_vec(v: &Vec<u8>) -> (Self, usize)
Helper: (bit useless) - Decode value from the Vec.
fn encode_var_vec(self) -> Vec<u8>
Helper: Encode a value and return the encoded form as Vec.