pub struct Base64UrlSafe;
Expand description
URL-safe Base64 encoder and decoder with padding.
This implementation follows the URL-safe Base64 encoding variant as defined in RFC 4648. It replaces the ‘+’ and ‘/’ characters with ‘-’ and ‘_’ to make the output URL and filename safe. Padding characters (‘=’) are included when needed.
§URL-safe Base64 Alphabet
The URL-safe Base64 alphabet uses characters:
- ‘A’ to ‘Z’ (26 characters)
- ‘a’ to ‘z’ (26 characters)
- ‘0’ to ‘9’ (10 characters)
- ‘-’ and ‘_’ (2 characters)
- ‘=’ (padding character)
§Examples
use ct_codecs::{Base64UrlSafe, Encoder, Decoder};
fn example() -> Result<(), ct_codecs::Error> {
let data = b"Hello, world!";
let encoded = Base64UrlSafe::encode_to_string(data)?;
assert_eq!(encoded, "SGVsbG8sIHdvcmxkIQ==");
// If the input contains characters that would be escaped in URLs
let binary_data = &[251, 239, 190, 222];
let encoded = Base64UrlSafe::encode_to_string(binary_data)?;
assert_eq!(encoded, "----3g==");
Ok(())
}
Trait Implementations§
Source§impl Decoder for Base64UrlSafe
impl Decoder for Base64UrlSafe
Source§impl Encoder for Base64UrlSafe
impl Encoder for Base64UrlSafe
Source§fn encoded_len(bin_len: usize) -> Result<usize, Error>
fn encoded_len(bin_len: usize) -> Result<usize, Error>
Calculates the length of the encoded output for a given binary input length. Read more
Source§fn encode<IN: AsRef<[u8]>>(b64: &mut [u8], bin: IN) -> Result<&[u8], Error>
fn encode<IN: AsRef<[u8]>>(b64: &mut [u8], bin: IN) -> Result<&[u8], Error>
Encodes binary data into a text representation. Read more
Auto Trait Implementations§
impl Freeze for Base64UrlSafe
impl RefUnwindSafe for Base64UrlSafe
impl Send for Base64UrlSafe
impl Sync for Base64UrlSafe
impl Unpin for Base64UrlSafe
impl UnwindSafe for Base64UrlSafe
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