pub struct Encoder<'o, E: Encoding> {
output: &'o mut [u8],
position: usize,
block_buffer: BlockBuffer,
line_wrapper: Option<LineWrapper>,
encoding: PhantomData<E>,
}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.
Fields§
§output: &'o mut [u8]Output buffer.
position: usizeCursor within the output buffer.
block_buffer: BlockBufferBlock buffer used for non-block-aligned data.
line_wrapper: Option<LineWrapper>Configuration and state for line-wrapping the output at a specified column.
encoding: PhantomData<E>Phantom parameter for the Base64 encoding in use.
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.
Sourcepub fn finish(self) -> Result<&'o str, Error>
pub fn finish(self) -> Result<&'o str, Error>
Finish encoding data, returning the resulting Base64 as a str.
Sourcepub fn finish_with_remaining(self) -> Result<(&'o str, &'o mut [u8]), Error>
pub fn finish_with_remaining(self) -> Result<(&'o str, &'o mut [u8]), Error>
Finish encoding data, returning the resulting Base64 as a str
along with the remaining space in the output buffer.