#![no_std]
use core::mem::MaybeUninit;
pub mod base32;
pub mod base64;
pub mod util;
pub trait Encode {
type Error;
fn encode_buffer_size(&self, decoded_size: usize) -> usize;
fn encode(
&mut self,
decoded: &[u8],
encoded: &mut [MaybeUninit<u8>],
) -> Result<usize, Self::Error>;
fn encode_end_buffer_size(&self) -> usize;
fn encode_end(
&mut self,
encoded: &mut [MaybeUninit<u8>],
) -> Result<usize, Self::Error>;
}
pub trait Decode {
type Error;
fn decode_buffer_size(&self, encoded_size: usize) -> usize;
fn decode(
&mut self,
encoded: &[u8],
decoded: &mut [MaybeUninit<u8>],
) -> Result<usize, Self::Error>;
fn decode_end_buffer_size(&self) -> usize;
fn decode_end(
&mut self,
decoded: &mut [MaybeUninit<u8>],
) -> Result<usize, Self::Error>;
}