1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
pub fn find_matches(content: &str, pattern: &str, mut writer: impl std::io::Write) {
    for line in content.lines() {
        if line.contains(pattern) {
            writeln!(writer, "{}", line).expect("could not write to stdout");
        }
    }
}

#[test]
fn find_a_match() {
    let mut result = Vec::new();
    find_matches("plop this is\nan awesome test\n for the grep functionnality", "test", &mut result);
    assert_eq!(result, b"an awesome test\n");
}