Encoder

Struct Encoder 

Source
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>

Source

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.

Source

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.

Source

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 read
  • Err(Error::InvalidLength) if there is insufficient space in the output buffer
Source

pub fn position(&self) -> usize

Get the position inside of the output buffer where the write cursor is currently located.

Source

pub fn finish(self) -> Result<&'o str, Error>

Finish encoding data, returning the resulting Base64 as a str.

Source

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.

Trait Implementations§

Source§

impl<E: Encoding> Write for Encoder<'_, E>

Available on crate feature std only.
Source§

fn write(&mut self, buf: &[u8]) -> Result<usize>

Writes a buffer into this writer, returning how many bytes were written. Read more
Source§

fn flush(&mut self) -> Result<()>

Flushes this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
1.36.0 · Source§

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
Source§

fn is_write_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. Read more
1.0.0 · Source§

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

Attempts to write an entire buffer into this writer. Read more
Source§

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

🔬This is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
1.0.0 · Source§

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 · Source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a “by reference” adapter for this instance of Write. Read more

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

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