pub struct Alphabet { /* private fields */ }Expand description
An alphabet defines the 64 ASCII characters (symbols) used for base64.
Common alphabets are provided as constants, and custom alphabets
can be made via from_str or the TryFrom<str> implementation.
§Examples
Building and using a custom Alphabet:
let custom = base64::alphabet::Alphabet::new("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").unwrap();
let engine = base64::engine::GeneralPurpose::new(
&custom,
base64::engine::general_purpose::PAD);Building a const:
use base64::alphabet::Alphabet;
static CUSTOM: Alphabet = {
// Result::unwrap() isn't const yet, but panic!() is OK
match Alphabet::new("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/") {
Ok(x) => x,
Err(_) => panic!("creation of alphabet failed"),
}
};Building lazily:
use base64::alphabet::Alphabet;
use std::sync::LazyLock;
static CUSTOM: LazyLock<Alphabet> = LazyLock::new(||
Alphabet::new("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").unwrap()
);Implementations§
Source§impl Alphabet
impl Alphabet
Sourcepub const fn new(alphabet: &str) -> Result<Self, ParseAlphabetError>
pub const fn new(alphabet: &str) -> Result<Self, ParseAlphabetError>
Create an Alphabet from a string of 64 unique printable ASCII bytes with = as the
padding symbol.
The padding symbol = is not allowed in the alphabet.
See Self::new_with_padding if a non-default padding symbol is needed.
Sourcepub const fn new_with_padding(
alphabet: &str,
padding: Symbol,
) -> Result<Self, ParseAlphabetError>
pub const fn new_with_padding( alphabet: &str, padding: Symbol, ) -> Result<Self, ParseAlphabetError>
Create an Alphabet from a string of 64 unique printable ASCII bytes, with a custom
padding symbol.
The padding symbol must not appear in the alphabet.
This is meant for strange alphabets that don’t use = as the padding symbol.
Trait Implementations§
impl Eq for Alphabet
impl StructuralPartialEq for Alphabet
Auto Trait Implementations§
impl Freeze for Alphabet
impl RefUnwindSafe for Alphabet
impl Send for Alphabet
impl Sync for Alphabet
impl Unpin for Alphabet
impl UnsafeUnpin for Alphabet
impl UnwindSafe for Alphabet
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more