Skip to main content

decode_map

Function decode_map 

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

Decodes a collection of entries 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, decode_map, encoded_map_len, encode_map};
use std::collections::HashMap;

let values = (0..1024u64).map(|v| (v, v)).collect::<HashMap<_, _>>();

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

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

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

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