zero_escape 1.0.0

Provides encoding and decoding data using the Zero Escape Encoding method.
Documentation
mod encoding;
mod decoding;

use std::iter::Map;
use std::slice::Iter;
pub use encoding::*;
pub use decoding::*;

pub(crate) const BYTE_ESCAPE: u8 = 0x00;
pub(crate) const BYTE_FLAG: u8 = 0xFF;
pub(crate) const BYTE_REPR_ESCAPE: u8 = 0x01;
pub(crate) const BYTE_REPR_FLAG: u8 = 0x02;

type InputIter<'a> = Map<Iter<'a, u8>, fn(&'a u8) -> u8>;

fn prep(input: &[u8]) -> (InputIter, Vec<u8>) {
    let output = Vec::with_capacity(input.len());
    let input_iter: InputIter = input.iter().map(|byte_ref| *byte_ref);
    (input_iter, output)
}