zero_escape 1.0.0

Provides encoding and decoding data using the Zero Escape Encoding method.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use super::*;

pub fn encode(input: impl AsRef<[u8]>) -> Vec<u8> {
    let (input_iter, mut output) = prep(input.as_ref());

    for byte in input_iter {
        match byte {
            BYTE_ESCAPE => output.extend_from_slice(&[BYTE_FLAG, BYTE_REPR_ESCAPE]),
            BYTE_FLAG => output.extend_from_slice(&[BYTE_FLAG, BYTE_REPR_FLAG]),
            byte => output.push(byte),
        }
    }

    output
}