splitter 0.2.5

A string and slice splitter library
Documentation

use splitter::Splitter;

#[test]
fn basic() {
    let sp = Splitter::new(&[1, 2, 3, 3, 4], [[2], [4]]);
    let re: Vec<&[usize]> = vec![&[1], &[2], &[3, 3], &[4]];
    assert_eq!(sp.collect::<Vec<_>>(), re);
}

#[test]
fn basic_bytes() {
    let sp = Splitter::new(b"12334", [b"2", b"4"]);
    let re: Vec<&[u8]> = vec![b"1", b"2", b"33", b"4"];
    assert_eq!(sp.collect::<Vec<_>>(), re);
}

#[test]
fn empty_inp() {
    let sp = Splitter::new(b"", [b"1"]);
    let re: Vec<&[u8]> = vec![];
    assert_eq!(sp.collect::<Vec<_>>(), re);
}

#[test]
fn empty_sep() {
    let sp = Splitter::new(b"123", b"");
    let re: Vec<&[u8]> = vec![b"1", b"2", b"3"];
    assert_eq!(sp.collect::<Vec<_>>(), re);
}

#[test]
fn byte() {
    let sp = Splitter::new(b"123", b'1');
    let re: Vec<&[u8]> = vec![b"1", b"23"];
    assert_eq!(sp.collect::<Vec<_>>(), re);
}

#[test]
fn multiple() {
    let sp = Splitter::new(b"123334", b"33");
    let re: Vec<&[u8]> = vec![b"12", b"33", b"34"];
    assert_eq!(sp.collect::<Vec<_>>(), re);
}