test-each 0.3.1

Generate tests at compile-time based on file resources
Documentation
use std::{io::BufRead, path::Path};

#[test_each::file(glob = "tests/data/*.txt", name(index))]
fn test_file(content: &str) {
    assert_eq!(Some("hello world"), content.lines().next())
}

#[test_each::file(glob = "tests/data/*.txt", name(segments = 2, extension))]
fn test_file_with_path(content: &str, path: &Path) {
    let mut lines = content.lines();
    assert_eq!(Some("hello world"), lines.next());
    assert_eq!(path.file_name().and_then(|s| s.to_str()), lines.next());
}

#[test_each::blob(glob = "tests/data/*.txt", name(segments = 3, extension, index))]
fn test_blob(content: &[u8]) {
    assert_eq!(
        Some(b"hello world".to_vec()),
        BufRead::split(content, b'\n').next().transpose().unwrap()
    )
}

#[test_each::path(glob = "tests/data/*.txt")]
fn test_path(path: &Path) {
    match path.file_name().and_then(|s| s.to_str()) {
        Some("foo.txt" | "bar.txt") => {}
        other => panic!("expected either `foo.txt` or `bar.txt` found: {:?}", other),
    }
}