Struct EncoderStringWriter
pub struct EncoderStringWriter<'e, E: Engine, S: StrConsumer> { /* private fields */ }
A Write implementation that base64-encodes data using the provided config and accumulates the
resulting base64 utf8 &str in a StrConsumer implementation (typically String), which is
then exposed via into_inner().
Examples
Buffer base64 in a new String:
use Write;
use general_purpose;
let mut enc = new;
enc.write_all.unwrap;
// get the resulting String
let b64_string = enc.into_inner;
assert_eq!;
Or, append to an existing String, which implements StrConsumer:
use Write;
use general_purpose;
let mut buf = Stringfrom;
let mut enc = from_consumer;
enc.write_all.unwrap;
// release the &mut reference on buf
let _ = enc.into_inner;
assert_eq!;
Performance
Because it has to validate that the base64 is UTF-8, it is about 80% as fast as writing plain
bytes to a io::Write.
Implementations
impl<'e, E: Engine> EncoderStringWriter<'e, E, String>
fn new(engine: &'e E) -> SelfCreate a
EncoderStringWriterthat will encode into a newStringwith the provided config.
impl<'e, E: Engine, S: StrConsumer> EncoderStringWriter<'e, E, S>
fn from_consumer(str_consumer: S, engine: &'e E) -> SelfCreate a
EncoderStringWriterthat will append to the providedStrConsumer.fn into_inner(self) -> SEncode all remaining buffered data, including any trailing incomplete input triples and associated padding.
Returns the base64-encoded form of the accumulated written data.
Trait Implementations
impl<'e, E: Engine, S: StrConsumer> Write for EncoderStringWriter<'e, E, S>
fn write(&mut self, buf: &[u8]) -> Result<usize>fn flush(&mut self) -> Result<()>
Auto Trait Implementations
impl<'e, E, S> Freeze for EncoderStringWriter<'e, E, S>
where
EncoderWriter<'e, E, Utf8SingleCodeUnitWriter<S>>: Freeze,
impl<'e, E, S> RefUnwindSafe for EncoderStringWriter<'e, E, S>
where
EncoderWriter<'e, E, Utf8SingleCodeUnitWriter<S>>: RefUnwindSafe,
impl<'e, E, S> Send for EncoderStringWriter<'e, E, S>
where
EncoderWriter<'e, E, Utf8SingleCodeUnitWriter<S>>: Send,
impl<'e, E, S> Sync for EncoderStringWriter<'e, E, S>
where
EncoderWriter<'e, E, Utf8SingleCodeUnitWriter<S>>: Sync,
impl<'e, E, S> Unpin for EncoderStringWriter<'e, E, S>
where
EncoderWriter<'e, E, Utf8SingleCodeUnitWriter<S>>: Unpin,
impl<'e, E, S> UnsafeUnpin for EncoderStringWriter<'e, E, S>
where
EncoderWriter<'e, E, Utf8SingleCodeUnitWriter<S>>: UnsafeUnpin,
impl<'e, E, S> UnwindSafe for EncoderStringWriter<'e, E, S>
where
EncoderWriter<'e, E, Utf8SingleCodeUnitWriter<S>>: UnwindSafe,
Blanket Implementations
impl<T> Any for EncoderStringWriter<'e, E, S>
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for EncoderStringWriter<'e, E, S>
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for EncoderStringWriter<'e, E, S>
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> From<T> for EncoderStringWriter<'e, E, S>
fn from(t: T) -> TReturns the argument unchanged.
impl<T, U> Into<U> for EncoderStringWriter<'e, E, S>
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for EncoderStringWriter<'e, E, S>
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for EncoderStringWriter<'e, E, S>
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>