81 {
84 }
85
86
87 try {
88 if (
data.type() ==
typeid(std::string)) {
89 auto str = std::any_cast<std::string>(data);
90 return std::vector<uint8_t>(str.begin(), str.end());
91 }
else if (
data.type() ==
typeid(
int)) {
92 auto val = std::any_cast<int>(data);
93 std::vector<uint8_t> bytes(sizeof(int));
94 std::memcpy(bytes.data(), &val, sizeof(int));
95 return bytes;
96 }
else if (
data.type() ==
typeid(
double)) {
97 auto val = std::any_cast<double>(data);
98 std::vector<uint8_t> bytes(sizeof(double));
99 std::memcpy(bytes.data(), &val, sizeof(double));
100 return bytes;
101 }
else if (
data.type() ==
typeid(
bool)) {
102 auto val = std::any_cast<bool>(data);
103 return {static_cast<uint8_t>(val ? 1 : 0)};
104 }
105 } catch (const std::bad_any_cast&) {
106
107 }
108
109 return {};
110 }
std::function< std::vector< uint8_t >(const std::any &)> custom_serializer_