byte_stream_splitter
Rust library for splitting byte streams.
// Prepare your separator sequence.
let separator = ;
// Prepare your data byte stream.
// This can be anything implementing the BufRead trait.
let mut data = new;
// The splitter implements the Iterator trait and can be used as such.
// You can iterate through the matches via next() or next_to_buf().
// Use next() if you don't care about holding the whole match in memory while searching for the next separator.
// Use next_to_buf() if you want to directly handle the matched bytes while scanning for the next separator.
// The first match contains all bytes until the first separator sequence is detected (Prefix).
// The last match contains all bytes starting from the last detected separator sequence. (Suffix)
// All other matches between the prefix and suffix contain all the bytes from a separator sequence until the next one starts.
// Note: If the stream immediately starts with the separator, the prefix will still be returned empty.
let mut splitter = new;
let prefix = splitter.next.unwrap.unwrap;
let match1 = splitter.next.unwrap.unwrap;
let match2 = splitter.next.unwrap.unwrap;
let suffix = splitter.next.unwrap.unwrap;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;