use crate::alpha::{
Base64Alphabet, Base64ReverseAlphabet, STD_ALPHABET, STD_REV_ALPHABET, URL_ALPHABET,
URL_REV_ALPHABET,
};
pub const STD_CONFIG: Base64Config =
Base64Config::new(STD_ALPHABET, STD_REV_ALPHABET, Base64Padding::Auto);
pub const URL_CONFIG: Base64Config =
Base64Config::new(URL_ALPHABET, URL_REV_ALPHABET, Base64Padding::No);
pub enum Base64Padding {
Auto,
Strict,
No,
}
pub struct Base64Config<'a> {
pub alphabet: &'a Base64Alphabet,
pub rev_alphabet: &'a Base64ReverseAlphabet,
pub padding: Base64Padding,
}
impl<'a> Base64Config<'a> {
pub const fn new(
alphabet: &'a Base64Alphabet,
rev_alphabet: &'a Base64ReverseAlphabet,
padding: Base64Padding,
) -> Self {
Self {
alphabet,
rev_alphabet,
padding,
}
}
}