parse_that 0.3.2

Zero-copy parser combinator library for Rust
Documentation
use parse_that::parsers::csv::csv_parser;
use std::fs;

#[cfg(test)]
mod tests {
    use parse_that::csv::CSV;

    use super::*;

    #[test]
    fn test_csv() {
        let csv = r#"
            "a","b","c"
            "d","e","f"
            "g","h","i"
"#;

        let rows = csv_parser().parse(csv).unwrap();
        let CSV::Lines(rows) = rows;

        assert_eq!(rows.len(), 3);
        assert_eq!(rows[0].len(), 3);
        assert_eq!(rows[1].len(), 3);
        assert_eq!(rows[2].len(), 3);

        assert_eq!(rows[0][0], "a");
        assert_eq!(rows[0][1], "b");
        assert_eq!(rows[0][2], "c");

        assert_eq!(rows[1][0], "d");
        assert_eq!(rows[1][1], "e");
        assert_eq!(rows[1][2], "f");

        assert_eq!(rows[2][0], "g");
        assert_eq!(rows[2][1], "h");
        assert_eq!(rows[2][2], "i");
    }

    #[test]
    fn test_csv_file() {
        let csv_file_path = "../../data/csv/active_charter_schools_report.csv";
        let csv_string = fs::read_to_string(csv_file_path).unwrap();

        let rows = csv_parser().parse(&csv_string).unwrap();
        let CSV::Lines(rows) = rows;

        assert_eq!(rows.len(), 62928);
    }
}