[][src]Crate concat_reader

concat-reader is a library for Rust that contains utility functions and traits to create concatenated Read objects from any thing that implements IntoIterator.

use concat_reader::{FileConcatRead, concat_path};
use std::io::{self, Read, BufRead, BufReader, Write};
fn main() -> io::Result<()>{
    let files = vec!["/path/to/file_1", "/path/to/file_2", "/path/to/file_3"];
    let mut f = concat_path(files);
    let mut buffered = BufReader::new(f);
    let stdout = io::stdout();
    let mut handle = stdout.lock();
    loop {
        let mut line = String::new();
        let r = buffered.read_line(&mut line)?;
        if r == 0 {
            return Ok(())
        }
        let f = buffered.get_ref().file_path();
        eprintln!("read from {:?}", f);
        handle.write(line.as_bytes())?;
    }
}

Re-exports

pub use self::file::FileConcatReader;
pub use self::read::ConcatReader;

Modules

file
read

Traits

ConcatRead

A special Read trait for concatenated readers.

FileConcatRead

FileConcatRead is a kind of ConcatRead which can provide information about the file currently read.

Functions

concat

Concats multiple readers into a single reader.

concat_path

Concats multiple file paths into a single reader over all files.