21class Base64 :
public std::vector<uint8_t> {
41 std::vector<uint8_t> bytes;
50 void convert(
const std::vector<T> & data, std::vector<uint8_t> & bytes){
52 static const size_t N =
sizeof(T);
54 bytes.reserve(data.size() * N);
55 for (
const auto & x: data) {
56 append_value_le(bytes, x);
62 void convertFrom(
const std::vector<float> & data){
68 void convertFrom(
const std::vector<uint16_t> & data){
90 inline void append_value_le(std::vector<uint8_t>& out, T v) {
93 const size_t N =
sizeof(T);
96 std::memcpy(&u, &v, N);
98 for (
size_t i=0; i<N; ++i){
100 out.push_back(uint8_t(u & 0xFF));
114 void base64_encode(
const std::vector<uint8_t>& data, std::string & out);