197 return std::visit([
err](
auto &&arg) ->
To {
198 using From = std::decay_t<
decltype(arg)>;
200 if constexpr (std::is_same_v<From, To>) {
203 }
else if constexpr (std::is_same_v<To, bool>) {
204 if constexpr (std::is_integral<From>::value ||
205 std::is_floating_point<From>::value)
return arg ?
true :
false;
206 if constexpr (std::is_same_v<From, String>)
return arg.template
to<To>(
err);
208 }
else if constexpr (std::is_same_v<To, int8_t>) {
209 if constexpr (std::is_same_v<From, bool>)
return !!arg;
210 if constexpr (std::is_integral<From>::value ||
212 if constexpr (std::is_same_v<From, String>)
return arg.template
to<To>(
err);
214 }
else if constexpr (std::is_same_v<To, uint8_t>) {
215 if constexpr (std::is_same_v<From, bool>)
return !!arg;
216 if constexpr (std::is_integral<From>::value ||
218 if constexpr (std::is_same_v<From, String>)
return arg.template
to<To>(
err);
220 }
else if constexpr (std::is_same_v<To, int16_t>) {
221 if constexpr (std::is_same_v<From, bool>)
return !!arg;
222 if constexpr (std::is_integral<From>::value ||
224 if constexpr (std::is_same_v<From, String>)
return arg.template
to<To>(
err);
226 }
else if constexpr (std::is_same_v<To, uint16_t>) {
227 if constexpr (std::is_same_v<From, bool>)
return !!arg;
228 if constexpr (std::is_integral<From>::value ||
230 if constexpr (std::is_same_v<From, String>)
return arg.template
to<To>(
err);
232 }
else if constexpr (std::is_same_v<To, int32_t>) {
233 if constexpr (std::is_same_v<From, bool>)
return !!arg;
234 if constexpr (std::is_integral<From>::value ||
236 if constexpr (std::is_same_v<From, String>)
return arg.template
to<To>(
err);
238 }
else if constexpr (std::is_same_v<To, uint32_t>) {
239 if constexpr (std::is_same_v<From, bool>)
return !!arg;
240 if constexpr (std::is_integral<From>::value ||
242 if constexpr (std::is_same_v<From, String>)
return arg.template
to<To>(
err);
244 }
else if constexpr (std::is_same_v<To, int64_t>) {
245 if constexpr (std::is_same_v<From, bool>)
return !!arg;
246 if constexpr (std::is_integral<From>::value ||
248 if constexpr (std::is_same_v<From, String>)
return arg.template
to<To>(
err);
250 }
else if constexpr (std::is_same_v<To, uint64_t>) {
251 if constexpr (std::is_same_v<From, bool>)
return !!arg;
252 if constexpr (std::is_integral<From>::value ||
254 if constexpr (std::is_same_v<From, String>)
return arg.template
to<To>(
err);
256 }
else if constexpr (std::is_same_v<To, float>) {
257 if constexpr (std::is_same_v<From, bool>)
return !!arg;
258 if constexpr (std::is_integral<From>::value ||
260 if constexpr (std::is_same_v<From, String>)
return arg.template
to<To>(
err);
261 if constexpr (std::is_same_v<From, Rational<int>>)
return arg.toDouble();
263 }
else if constexpr (std::is_same_v<To, double>) {
264 if constexpr (std::is_same_v<From, bool>)
return !!arg;
265 if constexpr (std::is_integral<From>::value ||
267 if constexpr (std::is_same_v<From, String>)
return arg.template
to<To>(
err);
268 if constexpr (std::is_same_v<From, Rational<int>>)
return arg.toDouble();
270 }
else if constexpr (std::is_same_v<To, DateTime>) {
274 }
else if constexpr (std::is_same_v<To, UUID>) {
275 if constexpr (std::is_same_v<From, String>) {
285 }
else if constexpr (std::is_same_v<To, Timecode>) {
286 if constexpr (std::is_same_v<From, String>) {
288 if(
ret.second.isError()) {
296 }
else if constexpr (std::is_same_v<To, String>) {
297 if constexpr (std::is_same_v<From, bool>)
return String::number(arg);
298 if constexpr (std::is_same_v<From, int8_t>)
return String::number(arg);
299 if constexpr (std::is_same_v<From, uint8_t>)
return String::number(arg);
300 if constexpr (std::is_same_v<From, int16_t>)
return String::number(arg);
301 if constexpr (std::is_same_v<From, uint16_t>)
return String::number(arg);
302 if constexpr (std::is_same_v<From, int32_t>)
return String::number(arg);
303 if constexpr (std::is_same_v<From, uint32_t>)
return String::number(arg);
304 if constexpr (std::is_same_v<From, int64_t>)
return String::number(arg);
305 if constexpr (std::is_same_v<From, uint64_t>)
return String::number(arg);
306 if constexpr (std::is_same_v<From, float>)
return String::number(arg);
307 if constexpr (std::is_same_v<From, double>)
return String::number(arg);
308 if constexpr (std::is_same_v<From, DateTime>)
return arg.toString();
309 if constexpr (std::is_same_v<From, TimeStamp>)
return arg.toString();
310 if constexpr (std::is_same_v<From, Size2Du32>)
return arg.toString();
311 if constexpr (std::is_same_v<From, UUID>)
return arg.toString();
312 if constexpr (std::is_same_v<From, Timecode>)
return arg.toString().first;
313 if constexpr (std::is_same_v<From, Rational<int>>)
return arg.toString();