calcSizeUpperBound
Return the maximum possible decoded size for a given input length - The actual length may be less if the input includes padding.
InvalidPadding is returned if the input length is not valid.
Function parameters
Parameters
- decoder:*const Base64Decoder
- source_len:usize
Base64 codecs
Types
- Codecs
- Base64 codecs
Error sets in this namespace
Error Sets
The Base64 alphabet defined in
Values
- standard_alphabet_chars
- The Base64 alphabet defined in
- standard
- Standard Base64 codecs, with padding, as defined in
- standard_no_pad
- Standard Base64 codecs, without padding, as defined in
- url_safe_alphabet_chars
- The URL-safe Base64 alphabet defined in
- url_safe
- URL-safe Base64 codecs, with padding, as defined in
- url_safe_no_pad
- URL-safe Base64 codecs, without padding, as defined in
Source
Implementation
pub fn calcSizeUpperBound(decoder: *const Base64Decoder, source_len: usize) Error!usize {
var result = source_len / 4 * 3;
const leftover = source_len % 4;
if (decoder.pad_char != null) {
if (leftover % 4 != 0) return error.InvalidPadding;
} else {
if (leftover % 4 == 1) return error.InvalidPadding;
result += leftover * 3 / 4;
}
return result;
}