use crate::{Decode, Error, Reader, Result};
use core::fmt::{self, Debug};
type Inner<'i> = base64ct::Decoder<'i, base64ct::Base64>;
pub struct Base64Reader<'i> {
inner: Inner<'i>,
remaining_len: usize,
}
impl<'i> Base64Reader<'i> {
pub fn new(input: &'i [u8]) -> Result<Self> {
let inner = Inner::new(input)?;
let remaining_len = inner.remaining_len();
Ok(Self {
inner,
remaining_len,
})
}
}
impl Debug for Base64Reader<'_> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_struct("Base64Reader")
.field("remaining_len", &self.remaining_len)
.finish_non_exhaustive()
}
}
impl_reader_for_newtype!(Base64Reader<'_>);