pub struct FileConcatReader<I: IntoIterator> { /* private fields */ }
Expand description
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(())
}
Implementations§
Source§impl<I> FileConcatReader<I>
impl<I> FileConcatReader<I>
Trait Implementations§
Source§impl<I> ConcatRead for FileConcatReader<I>
impl<I> ConcatRead for FileConcatReader<I>
Source§impl<I> Debug for FileConcatReader<I>
impl<I> Debug for FileConcatReader<I>
Source§impl<I> FileConcatRead for FileConcatReader<I>
impl<I> FileConcatRead for FileConcatReader<I>
Source§impl<I> From<I> for FileConcatReader<I>
impl<I> From<I> for FileConcatReader<I>
Source§impl<I> Read for FileConcatReader<I>
impl<I> Read for FileConcatReader<I>
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning
how many bytes were read. Read more
1.36.0 · Source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
Like
read
, except that it reads into a slice of buffers. Read moreSource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · Source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
Reads all bytes until EOF in this source, placing them into
buf
. Read more1.0.0 · Source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Reads all bytes until EOF in this source, appending them to
buf
. Read more1.6.0 · Source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Reads the exact number of bytes required to fill
buf
. Read moreSource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Pull some bytes from this source into the specified buffer. Read more
Source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Reads the exact number of bytes required to fill
cursor
. Read more1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adaptor for this instance of
Read
. Read moreAuto Trait Implementations§
impl<I> Freeze for FileConcatReader<I>
impl<I> !RefUnwindSafe for FileConcatReader<I>
impl<I> Send for FileConcatReader<I>
impl<I> Sync for FileConcatReader<I>
impl<I> Unpin for FileConcatReader<I>
impl<I> !UnwindSafe for FileConcatReader<I>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more