pub struct Decoder<R> { /* private fields */ }
Expand description
GZIP decoder.
Implementations§
source§impl<R> Decoder<R>where
R: Read,
impl<R> Decoder<R>where R: Read,
sourcepub fn new(inner: R) -> Result<Self>
pub fn new(inner: R) -> Result<Self>
Makes a new decoder instance.
inner
is to be decoded GZIP stream.
Examples
use core2::io::Read;
use libflate::gzip::Decoder;
let encoded_data = [31, 139, 8, 0, 123, 0, 0, 0, 0, 3, 1, 12, 0, 243, 255,
72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33,
163, 28, 41, 28, 12, 0, 0, 0];
let mut decoder = Decoder::new(&encoded_data[..]).unwrap();
let mut buf = Vec::new();
decoder.read_to_end(&mut buf).unwrap();
assert_eq!(buf, b"Hello World!");
sourcepub fn header(&self) -> &Header
pub fn header(&self) -> &Header
Returns the header of the GZIP stream.
Examples
use libflate::gzip::{Decoder, Os};
let encoded_data = [31, 139, 8, 0, 123, 0, 0, 0, 0, 3, 1, 12, 0, 243, 255,
72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33,
163, 28, 41, 28, 12, 0, 0, 0];
let decoder = Decoder::new(&encoded_data[..]).unwrap();
assert_eq!(decoder.header().os(), Os::Unix);
sourcepub fn as_inner_ref(&self) -> &R
pub fn as_inner_ref(&self) -> &R
Returns the immutable reference to the inner stream.
sourcepub fn as_inner_mut(&mut self) -> &mut R
pub fn as_inner_mut(&mut self) -> &mut R
Returns the mutable reference to the inner stream.
sourcepub fn into_inner(self) -> R
pub fn into_inner(self) -> R
Unwraps this Decoder
, returning the underlying reader.
Examples
use core2::io::Cursor;
use libflate::gzip::Decoder;
let encoded_data = [31, 139, 8, 0, 123, 0, 0, 0, 0, 3, 1, 12, 0, 243, 255,
72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33,
163, 28, 41, 28, 12, 0, 0, 0];
let decoder = Decoder::new(Cursor::new(&encoded_data[..])).unwrap();
assert_eq!(decoder.into_inner().into_inner(), &encoded_data[..]);
sourcepub fn unread_decoded_data(&self) -> &[u8] ⓘ
pub fn unread_decoded_data(&self) -> &[u8] ⓘ
Returns the data that has been decoded but has not yet been read.
This method is useful to retrieve partial decoded data when the decoding process is failed.
Trait Implementations§
source§impl<R> Read for Decoder<R>where
R: Read,
impl<R> Read for Decoder<R>where R: Read,
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, Global>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> 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> !RefUnwindSafe for Decoder<R>
impl<R> Send for Decoder<R>where R: Send,
impl<R> Sync for Decoder<R>where R: Sync,
impl<R> Unpin for Decoder<R>where R: Unpin,
impl<R> !UnwindSafe for Decoder<R>
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