[][src]Struct concat_reader::file::FileConcatReader

pub struct FileConcatReader<I: IntoIterator> { /* fields omitted */ }

The FileConcatReader struct is a reader over multiple File's created from an Iterator with AsRef<Path> items.

The reader will only attempt to open and read a file when requested. If the current reader reaches its EOF the FileConcatReader will start reading from the next path in the iterator. If all readers reached EOF the FileConcatReader will also be EOF.

Examples

use concat_reader::*;
use std::fs::File;
use std::io;
use std::io::prelude::*;

fn main() -> io::Result<()> {
    let files = ["foo.txt", "bar.txt", "baz.txt"];
    let mut c = FileConcatReader::new(&files);
    let mut buffer = [0; 10];

    // read up to 10 bytes
    let n = c.read(&mut buffer[..])?;

    println!("The bytes: {:?}", &buffer[..n]);

    //skip to the next file
    c.skip();

    let mut buffer = Vec::new();
    // read all rest files into a single buffer
    c.read_to_end(&mut buffer)?;
    Ok(())
}

Methods

impl<I> FileConcatReader<I> where
    I: IntoIterator,
    I::Item: AsRef<Path>, 
[src]

pub fn new(iter: I) -> Self[src]

Creates a new FileConcatReader from an value which can be converted into an Iterator<Item=AsRef<Path>>.

use std::io::prelude::*;
use concat_reader::*;
fn main() {
    let files = ["foo.txt", "bar.txt", "baz.txt"];
    let mut c = FileConcatReader::new(&files);
}

Trait Implementations

impl<I> ConcatRead for FileConcatReader<I> where
    I: IntoIterator,
    I::Item: AsRef<Path>, 
[src]

type Item = File

impl<I> FileConcatRead for FileConcatReader<I> where
    I: IntoIterator,
    I::Item: AsRef<Path>, 
[src]

impl<I> From<I> for FileConcatReader<I> where
    I: IntoIterator,
    I::Item: AsRef<Path>, 
[src]

impl<I> Debug for FileConcatReader<I> where
    I: IntoIterator,
    I::Item: Debug,
    I::IntoIter: Clone
[src]

impl<I> Read for FileConcatReader<I> where
    I: IntoIterator,
    I::Item: AsRef<Path>, 
[src]

fn read_vectored(&mut self, bufs: &mut [IoSliceMut]) -> Result<usize, Error>1.36.0[src]

Like read, except that it reads into a slice of buffers. Read more

unsafe fn initializer(&self) -> Initializer[src]

🔬 This is a nightly-only experimental API. (read_initializer)

Determines if this Reader can work with buffers of uninitialized memory. Read more

fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>1.0.0[src]

Read all bytes until EOF in this source, placing them into buf. Read more

fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>1.0.0[src]

Read all bytes until EOF in this source, appending them to buf. Read more

fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>1.6.0[src]

Read the exact number of bytes required to fill buf. Read more

fn by_ref(&mut self) -> &mut Self1.0.0[src]

Creates a "by reference" adaptor for this instance of Read. Read more

fn bytes(self) -> Bytes<Self>1.0.0[src]

Transforms this Read instance to an [Iterator] over its bytes. Read more

fn chain<R>(self, next: R) -> Chain<Self, R> where
    R: Read
1.0.0[src]

Creates an adaptor which will chain this stream with another. Read more

fn take(self, limit: u64) -> Take<Self>1.0.0[src]

Creates an adaptor which will read at most limit bytes from it. Read more

Auto Trait Implementations

impl<I> Sync for FileConcatReader<I> where
    <I as IntoIterator>::IntoIter: Sync

impl<I> Send for FileConcatReader<I> where
    <I as IntoIterator>::IntoIter: Send

impl<I> Unpin for FileConcatReader<I> where
    <I as IntoIterator>::IntoIter: Unpin

impl<I> !RefUnwindSafe for FileConcatReader<I>

impl<I> !UnwindSafe for FileConcatReader<I>

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]