#chain #io #chained #chainedreader

multi_reader

MultiReader - a composite reader implementation

1 unstable release

Uses old Rust 2015

0.1.0 Aug 24, 2016

#5 in #chained

Download history 311/week @ 2024-07-21 389/week @ 2024-07-28 343/week @ 2024-08-04 753/week @ 2024-08-11 283/week @ 2024-08-18 247/week @ 2024-08-25 273/week @ 2024-09-01 234/week @ 2024-09-08 533/week @ 2024-09-15 303/week @ 2024-09-22 393/week @ 2024-09-29 240/week @ 2024-10-06 577/week @ 2024-10-13 264/week @ 2024-10-20 773/week @ 2024-10-27 622/week @ 2024-11-03

2,252 downloads per month
Used in 3 crates

Custom license

6KB
115 lines

MultiReader - a composite reader implementation.

Build Status

Like std::io::Chain but allows to chain more than two readers together.

Usage

extern crate multi_reader;
use std::env;
use std::io::{BufRead, BufReader};
use std::fs::File;

fn main() {
    let args: Vec<_> = env::args().collect();
    let files = args[1..].iter().map(|f| File::open(f).expect("File not found"));
    let reader = BufReader::new(multi_reader::MultiReader::new(files));
    println!("Total lines count: {}", reader.lines().count());
}

Examples

Run cargo run --example main chained /path/to/file/a /path/to/file/b ....

Tests

cargo test

lib.rs:

A composite reader implementation.

Like io::Chain but allows to chain more than two readers together.

Use

extern crate multi_reader;
use std::env;
use std::io::{BufRead, BufReader};
use std::fs::File;

fn main() {
    let args: Vec<_> = env::args().collect();
    let files = args[1..].iter().map(|f| File::open(f).expect("File not found"));
    let reader = BufReader::new(multi_reader::MultiReader::new(files));
    println!("Total lines count: {}", reader.lines().count());
}

No runtime deps