Struct base64::read::DecoderReader
source · [−]Expand description
A Read
implementation that decodes base64 data read from an underlying reader.
Examples
use std::io::Read;
use std::io::Cursor;
use base64::engine::general_purpose;
// use a cursor as the simplest possible `Read` -- in real code this is probably a file, etc.
let mut wrapped_reader = Cursor::new(b"YXNkZg==");
let mut decoder = base64::read::DecoderReader::new(
&mut wrapped_reader,
&general_purpose::STANDARD);
// handle errors as you normally would
let mut result = Vec::new();
decoder.read_to_end(&mut result).unwrap();
assert_eq!(b"asdf", &result[..]);
Implementations
sourceimpl<'e, E: Engine, R: Read> DecoderReader<'e, E, R>
impl<'e, E: Engine, R: Read> DecoderReader<'e, E, R>
sourcepub fn new(reader: R, engine: &'e E) -> Self
pub fn new(reader: R, engine: &'e E) -> Self
Create a new decoder that will read from the provided reader r
.
sourcepub fn into_inner(self) -> R
pub fn into_inner(self) -> R
Unwraps this DecoderReader
, returning the base reader which it reads base64 encoded
input from.
Because DecoderReader
performs internal buffering, the state of the inner reader is
unspecified. This function is mainly provided because the inner reader type may provide
additional functionality beyond the Read
implementation which may still be useful.
Trait Implementations
sourceimpl<'e, E: Engine, R: Read> Debug for DecoderReader<'e, E, R>
impl<'e, E: Engine, R: Read> Debug for DecoderReader<'e, E, R>
sourceimpl<'e, E: Engine, R: Read> Read for DecoderReader<'e, E, R>
impl<'e, E: Engine, R: Read> Read for DecoderReader<'e, E, R>
sourcefn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Decode input from the wrapped reader.
Under non-error circumstances, this returns Ok
with the value being the number of bytes
written in buf
.
Where possible, this function buffers base64 to minimize the number of read() calls to the delegate reader.
Errors
Any errors emitted by the delegate reader are returned. Decoding errors due to invalid
base64 are also possible, and will have io::ErrorKind::InvalidData
.
1.36.0 · sourcefn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
read
, except that it reads into a slice of buffers. Read moresourcefn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector
)1.0.0 · sourcefn 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>
buf
. Read more1.0.0 · sourcefn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
buf
. Read more1.6.0 · sourcefn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
buf
. Read moresourcefn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)sourcefn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)cursor
. Read more1.0.0 · sourcefn by_ref(&mut self) -> &mut Self
fn by_ref(&mut self) -> &mut Self
Read
. Read more