#parser #csv #list #stream #zapret-info

zicsv

Parser library for Zapret-Info CSV lists

1 unstable release

Uses old Rust 2015

0.1.0 Apr 26, 2018

#24 in #lists


Used in zicsv-tool

MIT/Apache

38KB
791 lines

crates.io

zicsv

zicsv - Parser library for Zapret-Info CSV lists.

Documentation on docs.rs

Features:

  • Stream parser.
  • Immunity to malformed data which sometimes appears in Zapret-Info dumps.

Usage

Add this into your Cargo.toml:

[dependencies]
zicsv = "0.1"

Example code:

extern crate zicsv;

fn main() {
    use zicsv::GenericReader;

    let mut reader = zicsv::Reader::from_file("dump.csv").expect("Unable to create zicsv::Reader");

    println!("Timestamp: {}", reader.get_timestamp());
    println!();

    let mut errors = false;
    for record in reader.iter() {
        match record {
            Ok(record) => println!("{}", record),

            Err(error) => {
                errors = true;
                eprintln!("ERROR: {}", error);
            },
        }
    }

    std::process::exit(if errors { 1 } else { 0 })
}

Download dump.csv manually or use download-dump script from this repository before running this example.

Running examples

git clone --branch b0.1.0 https://github.com/im-0/zicsv
cd zicsv
./download-dump
cargo run --package zicsv --example parse

Dependencies

~7MB
~126K SLoC