lcov_parser/merger/
mod.rs

1// Copyright (c) 2015-2016 lcov-parser developers
2//
3// Licensed under the Apache License, Version 2.0
4// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT
5// license <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
6// option. All files in the project carrying such notice may not be copied,
7// modified, or distributed except according to those terms.
8
9mod merger;
10pub mod ops;
11
12pub use merger::merger:: { ReportMerger };
13
14use std::path::Path;
15use report::*;
16use self::ops::MergeError;
17
18/// Merge reports
19///
20/// # Examples
21///
22/// ```
23/// use lcov_parser::merge_files;
24///
25/// let trace_files = [
26///    "tests/fixtures/merge/fixture.info",
27///    "tests/fixtures/merge/fixture.info"
28/// ];
29/// let _ = match merge_files(&trace_files) {
30///     Ok(report) => {
31///         let result = report.save_as("/tmp/merged_report.info");
32///         match result {
33///             Ok(_) => println!("saved"),
34///             Err(err) => println!("{}", err)
35///         }
36///     },
37///     Err(err) => println!("{}", err)
38/// };
39/// ```
40pub fn merge_files<T: AsRef<Path>>(files: &[T]) -> Result<Report, MergeError> {
41    let mut merger = ReportMerger::new();
42    merger.merge(files)
43}