Skip to main content

encode_sequence

Function encode_sequence 

Source
pub fn encode_sequence<'i, V>(
    sequence: impl Iterator<Item = &'i V>,
    buf: &mut [u8],
) -> Result<usize, EncodeError>
where V: Varint + 'i + ?Sized,
Expand description

Encodes a sequence of values as varints and writes them to the buffer.

Returns the total number of bytes written to the buffer.

ยง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<u64>>(&buf).unwrap();

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