use crate::{Result, Writer};
type Inner<'o> = base64ct::Encoder<'o, base64ct::Base64>;
pub struct Base64Writer<'o> {
inner: Inner<'o>,
}
impl<'o> Base64Writer<'o> {
pub fn new(output: &'o mut [u8]) -> Result<Self> {
Ok(Self {
inner: Inner::new(output)?,
})
}
pub fn finish(self) -> Result<&'o str> {
Ok(self.inner.finish()?)
}
}
impl Writer for Base64Writer<'_> {
fn write(&mut self, bytes: &[u8]) -> Result<()> {
Ok(self.inner.encode(bytes)?)
}
}