A Rust crate for writing variable-size bytes into io::Write traited targets.
Writes are internally buffered and so the usage of any additional buffering such as std::io::BufWriter is not recommended.
Note that VariableSizeByteWriter does not flush its internal buffer when dropped.
``` rust use variablesizebyte_writer::*;
let mut target = Vec::new(); let mut writer = VariableSizeByteWriter::new(); let bytes = [(0x3F, 6),(0x1AFF, 13),(0x7, 3)];
bytes .iter() .foreach(|&(byte, bits)| writer.write16(&mut target, byte, bits).unwrap() );
let mut padding = 0; writer .flushallbytes(&mut target, &mut padding) .unwrap();
asserteq!(padding, 2); asserteq!(target[..], [0xFF, 0xBF, 0x3E]); ```
``` rust use std::fs::File; use variablesizebyte_writer::*;
let mut writer = VariableSizeByteWriter::new(); let mut file = File::create("path").unwrap();
for variable in 0..0x8F { writer.write_8(&mut file, variable, 7).unwrap(); }
let mut padding = 0; writer .flushallbytes(&mut file, &mut padding) .unwrap();
```
variablesizebyte_writer is distributed under the terms of MIT licence.