#pragma once
#include <array>
#include <cstdint>
#include <folly/detail/base64_detail/Base64Common.h>
#include <folly/detail/base64_detail/Base64Constants.h>
namespace folly::detail::base64_detail {
constexpr std::uint8_t atAsU8(const char* f, int offset) { … }
constexpr std::array<std::uint8_t, 3> base64DecodePack4To3(
std::uint8_t aaa, std::uint8_t bbb, std::uint8_t ccc, std::uint8_t ddd) { … }
template <bool isURL>
struct Base64ScalarImpl { … };
constexpr char* base64EncodeScalar(
const char* f, const char* l, char* o) noexcept { … }
constexpr char* base64URLEncodeScalar(
const char* f, const char* l, char* o) noexcept { … }
constexpr char* base64DecodeTailScalar(
const char* f, char* o, std::uint8_t& errorAccumulator) { … }
constexpr Base64DecodeResult base64DecodeScalar(
const char* f, const char* l, char* o) noexcept { … }
constexpr void base64URLDecodeStripValidPadding(const char* f, const char*& l) { … }
constexpr char* base64URLDecodeScalarLast4Bytes(
const char* f, const char* l, char* o, std::uint8_t& errorAccumulator) { … }
constexpr Base64DecodeResult base64URLDecodeScalar(
const char* f, const char* l, char* o) noexcept { … }
}