pub struct Alphabet {
pub(crate) symbols: [u8; 64],
}
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,
engine::{general_purpose::GeneralPurpose, GeneralPurposeConfig},
};
use once_cell::sync::Lazy;
static CUSTOM: Lazy<Alphabet> = Lazy::new(||
Alphabet::new("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").unwrap()
);
Fields§
§symbols: [u8; 64]
Implementations§
source§impl Alphabet
impl Alphabet
sourceconst fn from_str_unchecked(alphabet: &str) -> Self
const fn from_str_unchecked(alphabet: &str) -> Self
Performs no checks so that it can be const. Used only for known-valid strings.
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.
The =
byte is not allowed as it is used for padding.
Trait Implementations§
source§impl PartialEq for Alphabet
impl PartialEq for Alphabet
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 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