ssh_encoding/base64/
reader.rs1use crate::{Decode, Error, Reader, Result};
4use core::fmt::{self, Debug};
5
6type Inner<'i> = base64ct::Decoder<'i, base64ct::Base64>;
8
9pub struct Base64Reader<'i> {
11 inner: Inner<'i>,
13
14 remaining_len: usize,
16}
17
18impl<'i> Base64Reader<'i> {
19 pub fn new(input: &'i [u8]) -> Result<Self> {
25 let inner = Inner::new(input)?;
26 let remaining_len = inner.remaining_len();
27
28 Ok(Self {
29 inner,
30 remaining_len,
31 })
32 }
33}
34
35impl Debug for Base64Reader<'_> {
36 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
37 f.debug_struct("Base64Reader")
38 .field("remaining_len", &self.remaining_len)
39 .finish_non_exhaustive()
40 }
41}
42
43impl_reader_for_newtype!(Base64Reader<'_>);