lcov-parser 1.0.0

LCOV report parser for Rust
Documentation

lcov-parser

LCOV report parser for Rust.

Build Status Build Status crates.io version License

Basic usage

Create a LCOVParser object, and then parse the data.

extern crate lcov_parser;

use lcov_parser:: { LCOVParser, LCOVRecord };

fn main() {
    let content = concat!(
        "TN:test_name\n",
        "SF:/path/to/source.rs\n",
        "DA:1,2\n",
        "DA:2,1\n",
        "DA:3,5\n",
        "end_of_record\n"
    );

    let records = LCOVParser::new(content).parse().unwrap();

    for record in records.into_iter() {
        match record {
            LCOVRecord::TestName(name) => println!("Test: {}", name),
            LCOVRecord::SourceFile(file_name) => println!("File: {}", file_name),
            LCOVRecord::Data(line_number, execution_count, _) => println!("Line: {}, Executed: {}", line_number, execution_count),
            LCOVRecord::EndOfRecord => println!("Finish"),
            _ => { continue; }
        }
    }
}

Parsing the file

It can also be used to parse the report file.

let records = LCOVParser::from("/path/to/report.lcov").parse().unwrap();

for record in records.iter() {
    match record {
        &LCOVRecord::SourceFile(ref name) => println!("start file: {}", name),
        &LCOVRecord::EndOfRecord => println!("end file"),
        _ => { continue; }
    }
}

License

Licensed under either of