pub struct Encoder<'o, E: Encoding> { /* private fields */ }
Expand description
Stateful Base64 encoder with support for buffered, incremental encoding.
The E
type parameter can be any type which impls Encoding
such as
Base64
or Base64Unpadded
.
Implementations§
Source§impl<'o, E: Encoding> Encoder<'o, E>
impl<'o, E: Encoding> Encoder<'o, E>
Sourcepub fn new(output: &'o mut [u8]) -> Result<Self, Error>
pub fn new(output: &'o mut [u8]) -> Result<Self, Error>
Create a new encoder which writes output to the given byte slice.
Output constructed using this method is not line-wrapped.
Sourcepub fn new_wrapped(
output: &'o mut [u8],
width: usize,
ending: LineEnding,
) -> Result<Self, Error>
pub fn new_wrapped( output: &'o mut [u8], width: usize, ending: LineEnding, ) -> Result<Self, Error>
Create a new encoder which writes line-wrapped output to the given byte slice.
Output will be wrapped at the specified interval, using the provided
line ending. Use LineEnding::default()
to use the conventional line
ending for the target OS.
Minimum allowed line width is 4.
Sourcepub fn encode(&mut self, input: &[u8]) -> Result<(), Error>
pub fn encode(&mut self, input: &[u8]) -> Result<(), Error>
Encode the provided buffer as Base64, writing it to the output buffer.
§Returns
Ok(())
if the expected amount of data was readErr(Error::InvalidLength)
if there is insufficient space in the output buffer
Sourcepub fn position(&self) -> usize
pub fn position(&self) -> usize
Get the position inside of the output buffer where the write cursor is currently located.
Trait Implementations§
Source§impl<E: Encoding> Write for Encoder<'_, E>
Available on crate feature std
only.
impl<E: Encoding> Write for Encoder<'_, E>
std
only.Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
write_all_vectored
)Auto Trait Implementations§
impl<'o, E> Freeze for Encoder<'o, E>
impl<'o, E> RefUnwindSafe for Encoder<'o, E>where
E: RefUnwindSafe,
impl<'o, E> Send for Encoder<'o, E>
impl<'o, E> Sync for Encoder<'o, E>
impl<'o, E> Unpin for Encoder<'o, E>where
E: Unpin,
impl<'o, E> !UnwindSafe for Encoder<'o, E>
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
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 64 bytes