Skip to main content

decode_sequence

Function decode_sequence 

Source
pub fn decode_sequence<V, O>(buf: &[u8]) -> Result<(usize, O), DecodeError>
where V: Varint, O: FromIterator<V>,
Expand description

Decodes a sequence of values from the buffer.

Returns the number of bytes read from the buffer and a collection of the decoded value if successful.

ยงExample

use varing::{Varint, encoded_sequence_len, encode_sequence, decode_sequence};

let values = (0..1024u64).collect::<Vec<_>>();

let encoded_len = encoded_sequence_len(values.iter());
let mut buf = vec![0; encoded_len];

let bytes_written = encode_sequence(values.iter(), &mut buf).unwrap();
assert_eq!(bytes_written, encoded_len);

let (readed, decoded) = decode_sequence::<u64, Vec<_>>(&buf).unwrap();

assert_eq!(decoded, values);
assert_eq!(readed, buf.len());