pub struct Encoder<'o, E: Variant> { /* 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
.
Internally it uses a sealed Variant
trait which is an implementation
detail of this crate, and leverages a blanket impl of Encoding
.
Implementations
sourceimpl<'o, E: Variant> Encoder<'o, E>
impl<'o, E: Variant> 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(bytes)
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
sourceimpl<'o, E: Variant> Write for Encoder<'o, E>
This is supported on crate feature std
only.
impl<'o, E: Variant> Write for Encoder<'o, E>
std
only.sourcefn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Write a buffer into this writer, returning how many bytes were written. Read more
sourcefn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
sourcefn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)Determines if this Write
r has an efficient write_vectored
implementation. Read more
1.0.0 · sourcefn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
sourcefn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more