Trait Encoding

Source
pub trait Encoding: Alphabet {
    // Required methods
    fn decode(src: impl AsRef<[u8]>, dst: &mut [u8]) -> Result<&[u8], Error>;
    fn decode_in_place(buf: &mut [u8]) -> Result<&[u8], InvalidEncodingError>;
    fn decode_vec(input: &str) -> Result<Vec<u8>, Error>;
    fn encode<'a>(
        src: &[u8],
        dst: &'a mut [u8],
    ) -> Result<&'a str, InvalidLengthError>;
    fn encode_string(input: &[u8]) -> String;
    fn encoded_len(bytes: &[u8]) -> usize;
}
Available on crate feature base64 only.
Expand description

Base64 encoding trait.

This trait must be imported to make use of any Base64 alphabet defined in this crate.

The following encoding types impl this trait:

  • [Base64]: standard Base64 encoding with = padding.
  • [Base64Bcrypt]: bcrypt Base64 encoding.
  • [Base64Crypt]: crypt(3) Base64 encoding.
  • [Base64Unpadded]: standard Base64 encoding without padding.
  • [Base64Url]: URL-safe Base64 encoding with = padding.
  • [Base64UrlUnpadded]: URL-safe Base64 encoding without padding.

Required Methods§

Source

fn decode(src: impl AsRef<[u8]>, dst: &mut [u8]) -> Result<&[u8], Error>

Decode a Base64 string into the provided destination buffer.

Source

fn decode_in_place(buf: &mut [u8]) -> Result<&[u8], InvalidEncodingError>

Decode a Base64 string in-place.

NOTE: this method does not (yet) validate that padding is well-formed, if the given Base64 encoding is padded.

Source

fn decode_vec(input: &str) -> Result<Vec<u8>, Error>

Decode a Base64 string into a byte vector.

Source

fn encode<'a>( src: &[u8], dst: &'a mut [u8], ) -> Result<&'a str, InvalidLengthError>

Encode the input byte slice as Base64.

Writes the result into the provided destination slice, returning an ASCII-encoded Base64 string value.

Source

fn encode_string(input: &[u8]) -> String

Encode input byte slice into a String containing Base64.

§Panics

If input length is greater than usize::MAX/4.

Source

fn encoded_len(bytes: &[u8]) -> usize

Get the length of Base64 produced by encoding the given bytes.

WARNING: this function will return 0 for lengths greater than usize::MAX/4!

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T> Encoding for T
where T: Alphabet,