[−][src]Struct concat_reader::file::FileConcatReader
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]
I: IntoIterator,
I::Item: AsRef<Path>,
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]
I: IntoIterator,
I::Item: AsRef<Path>,
impl<I> FileConcatRead for FileConcatReader<I> where
I: IntoIterator,
I::Item: AsRef<Path>,
[src]
I: IntoIterator,
I::Item: AsRef<Path>,
impl<I> From<I> for FileConcatReader<I> where
I: IntoIterator,
I::Item: AsRef<Path>,
[src]
I: IntoIterator,
I::Item: AsRef<Path>,
impl<I> Debug for FileConcatReader<I> where
I: IntoIterator,
I::Item: Debug,
I::IntoIter: Clone,
[src]
I: IntoIterator,
I::Item: Debug,
I::IntoIter: Clone,
impl<I> Read for FileConcatReader<I> where
I: IntoIterator,
I::Item: AsRef<Path>,
[src]
I: IntoIterator,
I::Item: AsRef<Path>,
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
[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]
read_initializer
)Determines if this Read
er 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 Self
1.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]
R: Read,
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,
<I as IntoIterator>::IntoIter: Sync,
impl<I> Send for FileConcatReader<I> where
<I as IntoIterator>::IntoIter: Send,
<I as IntoIterator>::IntoIter: Send,
impl<I> Unpin for FileConcatReader<I> where
<I as IntoIterator>::IntoIter: Unpin,
<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]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,