Struct autocompress::io::RayonReader
source · pub struct RayonReader<R: Read + Send, TB: ThreadBuilder = RayonThreadBuilder> { /* private fields */ }
Available on crate feature
rayon
only.Expand description
Off load read operation to another thread.
Example
use autocompress::io::RayonReader;
use autocompress::zstd::ZstdDecompressReader;
let buf_reader = BufReader::new(File::open("testfiles/pg2701.txt.zst")?);
let zstd_reader = ZstdDecompressReader::new(buf_reader);
let mut rayon_reader = RayonReader::new(zstd_reader);
let mut buf = Vec::new();
rayon_reader.read_to_end(&mut buf)?;
Implementations§
source§impl<R: Read + Send + 'static> RayonReader<R, RayonThreadBuilder>
impl<R: Read + Send + 'static> RayonReader<R, RayonThreadBuilder>
pub fn with_capacity(reader: R, capacity: usize) -> Self
pub fn new(reader: R) -> Self
source§impl<R: Read + Send + 'static, TB: ThreadBuilder> RayonReader<R, TB>
impl<R: Read + Send + 'static, TB: ThreadBuilder> RayonReader<R, TB>
pub fn with_thread_builder_and_capacity( reader: R, thread_builder: TB, capacity: usize ) -> Self
pub fn into_inner(self) -> R
Trait Implementations§
source§impl<R: Read + Send + 'static, TB: ThreadBuilder> BufRead for RayonReader<R, TB>
impl<R: Read + Send + 'static, TB: ThreadBuilder> BufRead for RayonReader<R, TB>
source§fn consume(&mut self, amt: usize)
fn consume(&mut self, amt: usize)
Tells this buffer that
amt
bytes have been consumed from the buffer,
so they should no longer be returned in calls to read
. Read moresource§fn fill_buf(&mut self) -> Result<&[u8]>
fn fill_buf(&mut self) -> Result<&[u8]>
Returns the contents of the internal buffer, filling it with more data
from the inner reader if it is empty. Read more
source§fn has_data_left(&mut self) -> Result<bool, Error>
fn has_data_left(&mut self) -> Result<bool, Error>
🔬This is a nightly-only experimental API. (
buf_read_has_data_left
)Check if the underlying
Read
has any data left to be read. Read moresource§fn skip_until(&mut self, byte: u8) -> Result<usize, Error>
fn skip_until(&mut self, byte: u8) -> Result<usize, Error>
🔬This is a nightly-only experimental API. (
bufread_skip_until
)Skip all bytes until the delimiter
byte
or EOF is reached. Read more1.0.0 · source§fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
Read all bytes until a newline (the
0xA
byte) is reached, and append
them to the provided String
buffer. Read moresource§impl<R: Read + Send + 'static, TB: ThreadBuilder> Read for RayonReader<R, TB>
impl<R: Read + Send + 'static, TB: ThreadBuilder> Read for RayonReader<R, TB>
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>
Read 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>
Read 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>
Read 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
)Read 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<R, TB> RefUnwindSafe for RayonReader<R, TB>where
TB: RefUnwindSafe,
impl<R, TB> Send for RayonReader<R, TB>where
TB: Send,
impl<R, TB = RayonThreadBuilder> !Sync for RayonReader<R, TB>
impl<R, TB> Unpin for RayonReader<R, TB>where
TB: Unpin,
impl<R, TB> UnwindSafe for RayonReader<R, TB>where
TB: UnwindSafe,
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