pub struct DecompressorReader<R>where
R: BufRead,{ /* private fields */ }
Expand description
Wraps a reader and decompresses its output.
§Examples
Suppose the file test.brotli
contains brotli compressed data. Let’s try to
decompress it:
use std::fs::File;
use std::io::Read;
use brotlic::DecompressorWriter;
let mut input = File::open("test.brotli")?; // test.brotli is brotli compressed
let mut output = String::new();
input.read_to_string(&mut output)?;
println!("Decompressed text: {}", output);
Implementations§
Source§impl<R> DecompressorReader<R>where
R: BufRead,
impl<R> DecompressorReader<R>where
R: BufRead,
Sourcepub fn new(inner: R) -> DecompressorReader<R> ⓘ
pub fn new(inner: R) -> DecompressorReader<R> ⓘ
Creates a new DecompressorReader<R>
with a newly created decoder.
§Panics
Panics if the decoder fails to be allocated or initialized
Sourcepub fn with_decoder(decoder: BrotliDecoder, inner: R) -> DecompressorReader<R> ⓘ
pub fn with_decoder(decoder: BrotliDecoder, inner: R) -> DecompressorReader<R> ⓘ
Creates a new DecompressorReader<R>
with a specified decoder.
§Examples
use std::io::Read;
use brotlic::{BrotliDecoderOptions, DecompressorReader};
let decoder = BrotliDecoderOptions::new()
.disable_ring_buffer_reallocation(true)
.build()?;
let source = [11, 2, 128, 104, 101, 108, 108, 111, 3]; // decompresses to "hello"
let mut decompressor = DecompressorReader::with_decoder(decoder, source.as_slice());
Sourcepub fn get_mut(&mut self) -> &mut R
pub fn get_mut(&mut self) -> &mut R
Gets a mutable reference to the underlying reader.
It is inadvisable to directly read from the underlying reader.
Sourcepub fn into_inner(self) -> Result<R, IntoInnerError<DecompressorReader<R>>>
pub fn into_inner(self) -> Result<R, IntoInnerError<DecompressorReader<R>>>
Sourcepub fn into_parts(self) -> (R, BrotliDecoder)
pub fn into_parts(self) -> (R, BrotliDecoder)
Disassembles this DecompressorReader<R>
, returning the underlying
reader and decoder.
into_parts
makes no attempt to validate that the decompression stream
finished and cannot fail.
Trait Implementations§
Source§impl<R> Debug for DecompressorReader<R>
impl<R> Debug for DecompressorReader<R>
Source§impl<R> Read for DecompressorReader<R>where
R: BufRead,
impl<R> Read for DecompressorReader<R>where
R: BufRead,
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>
fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>
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<R> Freeze for DecompressorReader<R>where
R: Freeze,
impl<R> RefUnwindSafe for DecompressorReader<R>where
R: RefUnwindSafe,
impl<R> Send for DecompressorReader<R>where
R: Send,
impl<R> Sync for DecompressorReader<R>where
R: Sync,
impl<R> Unpin for DecompressorReader<R>where
R: Unpin,
impl<R> UnwindSafe for DecompressorReader<R>where
R: 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