|
|
|
@@ -158,7 +158,7 @@ result<DestType, conversion_error> to(const std::string &source, std::enable_if_
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template < typename DestType >
|
|
|
|
|
result<DestType, conversion_error> to(const blob &source, std::enable_if_t<std::is_same_v<DestType, blob>>* = nullptr) {
|
|
|
|
|
result<DestType, conversion_error> to(const blob_type_t &source, std::enable_if_t<std::is_same_v<DestType, blob_type_t>>* = nullptr) {
|
|
|
|
|
return ok(source);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -211,7 +211,7 @@ result<DestType, conversion_error> to(const SourceType &source, std::enable_if_t
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template < typename DestType, typename SourceType >
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_same_v<SourceType, blob> &&std::is_same_v<DestType, std::string>>* = nullptr) {
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_same_v<SourceType, blob_type_t> &&std::is_same_v<DestType, std::string>>* = nullptr) {
|
|
|
|
|
return failure(conversion_error::NotConvertable);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -224,12 +224,12 @@ result<DestType, conversion_error> to(const SourceType &source, std::enable_if_t
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template < typename DestType, typename SourceType >
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_arithmetic_v<DestType> && std::is_same_v<SourceType, blob>>* = nullptr) {
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_arithmetic_v<DestType> && std::is_same_v<SourceType, blob_type_t>>* = nullptr) {
|
|
|
|
|
return failure(conversion_error::NotConvertable);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template < typename DestType, typename SourceType >
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &source, std::enable_if_t<std::is_integral_v<SourceType> && std::is_same_v<DestType, blob>>* = nullptr) {
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &source, std::enable_if_t<std::is_integral_v<SourceType> && std::is_same_v<DestType, blob_type_t>>* = nullptr) {
|
|
|
|
|
DestType result;
|
|
|
|
|
result.resize(sizeof(source));
|
|
|
|
|
std::memcpy(result.data(), &source, sizeof(source));
|
|
|
|
@@ -238,17 +238,17 @@ result<DestType, conversion_error> to(const SourceType &source, std::enable_if_t
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template < typename DestType, typename SourceType >
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_floating_point_v<SourceType> && std::is_same_v<DestType, blob>>* = nullptr) {
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_floating_point_v<SourceType> && std::is_same_v<DestType, blob_type_t>>* = nullptr) {
|
|
|
|
|
return failure(conversion_error::NotConvertable);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template < typename DestType, typename SourceType >
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_same_v<SourceType, std::string> && std::is_same_v<DestType, blob>>* = nullptr) {
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_same_v<SourceType, std::string> && std::is_same_v<DestType, blob_type_t>>* = nullptr) {
|
|
|
|
|
return failure(conversion_error::NotConvertable);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template < typename DestType, typename SourceType >
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_same_v<SourceType, const char*> && std::is_same_v<DestType, blob>>* = nullptr) {
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_same_v<SourceType, const char*> && std::is_same_v<DestType, blob_type_t>>* = nullptr) {
|
|
|
|
|
return failure(conversion_error::NotConvertable);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -353,17 +353,17 @@ result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template < typename DestType, typename SourceType >
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_same_v<blob, DestType> && std::is_same_v<date_type_t, SourceType>>* = nullptr) {
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_same_v<blob_type_t, DestType> && std::is_same_v<date_type_t, SourceType>>* = nullptr) {
|
|
|
|
|
return failure(conversion_error::NotConvertable);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template < typename DestType, typename SourceType >
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_same_v<blob, DestType> && std::is_same_v<time_type_t, SourceType>>* = nullptr) {
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_same_v<blob_type_t, DestType> && std::is_same_v<time_type_t, SourceType>>* = nullptr) {
|
|
|
|
|
return failure(conversion_error::NotConvertable);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template < typename DestType, typename SourceType >
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_same_v<blob, DestType> && std::is_same_v<timestamp, SourceType>>* = nullptr) {
|
|
|
|
|
result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_if_t<std::is_same_v<blob_type_t, DestType> && std::is_same_v<timestamp, SourceType>>* = nullptr) {
|
|
|
|
|
return failure(conversion_error::NotConvertable);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -413,17 +413,17 @@ result<DestType, conversion_error> to(const SourceType &/*source*/, std::enable_
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template < typename DestType>
|
|
|
|
|
result<DestType, conversion_error> to(const blob &/*source*/, std::enable_if_t<std::is_same_v<date_type_t, DestType>>* = nullptr) {
|
|
|
|
|
result<DestType, conversion_error> to(const blob_type_t &/*source*/, std::enable_if_t<std::is_same_v<date_type_t, DestType>>* = nullptr) {
|
|
|
|
|
return failure(conversion_error::NotConvertable);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template < typename DestType>
|
|
|
|
|
result<DestType, conversion_error> to(const blob &/*source*/, std::enable_if_t<std::is_same_v<time_type_t, DestType>>* = nullptr) {
|
|
|
|
|
result<DestType, conversion_error> to(const blob_type_t &/*source*/, std::enable_if_t<std::is_same_v<time_type_t, DestType>>* = nullptr) {
|
|
|
|
|
return failure(conversion_error::NotConvertable);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template < typename DestType>
|
|
|
|
|
result<DestType, conversion_error> to(const blob &/*source*/, std::enable_if_t<std::is_same_v<timestamp, DestType>>* = nullptr) {
|
|
|
|
|
result<DestType, conversion_error> to(const blob_type_t &/*source*/, std::enable_if_t<std::is_same_v<timestamp, DestType>>* = nullptr) {
|
|
|
|
|
return failure(conversion_error::NotConvertable);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|