pub fn decode(
bytes: &[u8],
table: &FrequencyTable,
len: usize,
) -> Result<Vec<u32>, AnsError>Expand description
Decode len symbols from an rANS byte stream produced by encode.
The caller must know the message length because rANS is a stream codec with no
built-in end-of-message marker. Passing len = 0 is valid and returns an empty
vector (the 4-byte state is still read and validated).
ยงExample
use ans::{encode, decode, FrequencyTable};
let table = FrequencyTable::from_counts(&[5, 3, 2], 14)?;
let message = [2u32, 0, 1, 0, 2];
let bytes = encode(&message, &table)?;
let recovered = decode(&bytes, &table, message.len())?;
assert_eq!(recovered, message);