31 requires std::is_same_v<T, int32_t> || std::is_same_v<T, int64_t> || std::is_same_v<T, double> ||
32 std::is_same_v<T, bool> || std::is_same_v<T, std::string> ||
33 std::is_same_v<T, std::vector<uint8_t>> ||
34 std::is_same_v<T, std::chrono::system_clock::time_point> ||
35 std::is_same_v<T, std::vector<int32_t>> || std::is_same_v<T, std::vector<int64_t>> ||
36 std::is_same_v<T, std::vector<double>> || std::is_same_v<T, std::vector<bool>> ||
37 std::is_same_v<T, std::vector<std::string>> ||
38 std::is_same_v<T, std::vector<std::vector<uint8_t>>> ||
39 std::is_same_v<T, std::vector<std::chrono::system_clock::time_point>>;
78#if __cplusplus >= 202002L
83 template <AstarteDataAllowedType T>
90 template <AstarteDataAllowedType T>
91 auto into() const -> const T& {
92 return std::get<T>(data_);
98 template <AstarteDataAllowedType T>
100 if (std::holds_alternative<T>(data_)) {
101 return std::get<T>(data_);
111 template <
typename T>
113 T value, std::enable_if_t<astarte_data_is_allowed_type<T>::value,
bool> =
true)
120 template <
typename T>
121 auto into(std::enable_if_t<astarte_data_is_allowed_type<T>::value,
bool> =
true) const
123 return std::get<T>(data_);
129 template <
typename T>
130 auto try_into(std::enable_if_t<astarte_data_is_allowed_type<T>::value,
bool> =
131 true) const -> std::optional<T> {
132 if (std::holds_alternative<T>(data_)) {
133 return std::get<T>(data_);
150 -> const std::variant<int32_t, int64_t,
double,
bool, std::
string, std::vector<uint8_t>,
151 std::chrono::system_clock::time_point, std::vector<int32_t>,
152 std::vector<int64_t>, std::vector<
double>, std::vector<
bool>,
153 std::vector<std::
string>, std::vector<std::vector<uint8_t>>,
154 std::vector<std::chrono::system_clock::time_point>>&;
160 [[nodiscard]] auto operator==(const
AstarteData& other) const ->
bool;
166 [[nodiscard]] auto operator!=(const
AstarteData& other) const ->
bool;
169 std::variant<int32_t, int64_t,
double,
bool, std::
string, std::vector<uint8_t>,
170 std::chrono::system_clock::time_point, std::vector<int32_t>, std::vector<int64_t>,
171 std::vector<
double>, std::vector<
bool>, std::vector<std::
string>,
172 std::vector<std::vector<uint8_t>>,
173 std::vector<std::chrono::system_clock::time_point>>