File indexing completed on 2025-01-18 09:29:24
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef BOOST_BEAST_DETAIL_BASE64_HPP
0011 #define BOOST_BEAST_DETAIL_BASE64_HPP
0012
0013 #include <boost/beast/core/string.hpp>
0014 #include <cctype>
0015 #include <utility>
0016
0017 namespace boost {
0018 namespace beast {
0019 namespace detail {
0020
0021 namespace base64 {
0022
0023 BOOST_BEAST_DECL
0024 char const*
0025 get_alphabet();
0026
0027 BOOST_BEAST_DECL
0028 signed char const*
0029 get_inverse();
0030
0031
0032 BOOST_BEAST_DECL
0033 std::size_t constexpr
0034 encoded_size(std::size_t n)
0035 {
0036 return 4 * ((n + 2) / 3);
0037 }
0038
0039
0040 inline
0041 std::size_t constexpr
0042 decoded_size(std::size_t n)
0043 {
0044 return n / 4 * 3;
0045 }
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059 BOOST_BEAST_DECL
0060 std::size_t
0061 encode(void* dest, void const* src, std::size_t len);
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074 BOOST_BEAST_DECL
0075 std::pair<std::size_t, std::size_t>
0076 decode(void* dest, char const* src, std::size_t len);
0077
0078 }
0079
0080 }
0081 }
0082 }
0083
0084 #ifdef BOOST_BEAST_HEADER_ONLY
0085 #include <boost/beast/core/detail/base64.ipp>
0086 #endif
0087
0088 #endif