added conversion from/to blob
This commit is contained in:
parent
dd94ed1020
commit
6bbc870362
|
|
@ -55,6 +55,12 @@ void convert(std::string &dest, SourceType source, typename std::enable_if<std::
|
|||
}
|
||||
}
|
||||
|
||||
template < typename SourceType >
|
||||
void convert(utils::blob &dest, SourceType source, typename std::enable_if<!std::is_same<utils::blob, SourceType>::value>::type* = nullptr)
|
||||
{
|
||||
throw std::logic_error("couldn't convert value to matador::utils::blob");
|
||||
}
|
||||
|
||||
void convert(std::string &dest, const char* source);
|
||||
|
||||
unsigned long long to_unsigned_long_long(const char *source);
|
||||
|
|
@ -108,8 +114,11 @@ void convert(DestType &dest, bool source, typename std::enable_if<std::is_floati
|
|||
template < typename DestType >
|
||||
void convert(DestType &dest, const utils::blob &data)
|
||||
{
|
||||
throw std::logic_error("couldn't convert matador::utils::blob into destination type");
|
||||
}
|
||||
|
||||
void convert(utils::blob &dest, const utils::blob &data);
|
||||
|
||||
}
|
||||
|
||||
#endif //QUERY_CONVERT_HPP
|
||||
|
|
|
|||
|
|
@ -59,4 +59,9 @@ long double to_double(const char *source)
|
|||
return result;
|
||||
}
|
||||
|
||||
void convert(utils::blob &dest, const utils::blob &data)
|
||||
{
|
||||
dest = data;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
#include "matador/sql/field.hpp"
|
||||
|
||||
using namespace matador::sql;
|
||||
using namespace matador;
|
||||
|
||||
TEST_CASE("Field test", "[field]") {
|
||||
field f("name");
|
||||
sql::field f("name");
|
||||
|
||||
REQUIRE(f.name() == "name");
|
||||
REQUIRE(f.is_null());
|
||||
|
|
@ -35,4 +35,18 @@ TEST_CASE("Field test", "[field]") {
|
|||
auto bool_val = f.as<bool>();
|
||||
REQUIRE(bool_val.has_value());
|
||||
REQUIRE(bool_val.value());
|
||||
|
||||
f = utils::blob{ 7,8,6,5,4,3 };
|
||||
REQUIRE(!f.is_null());
|
||||
REQUIRE(!f.is_integer());
|
||||
REQUIRE(!f.is_floating_point());
|
||||
REQUIRE(f.is_blob());
|
||||
REQUIRE(!f.is_bool());
|
||||
REQUIRE(!f.is_string());
|
||||
|
||||
auto blob_val = f.as<utils::blob>();
|
||||
REQUIRE(blob_val.has_value());
|
||||
REQUIRE(blob_val.value() == utils::blob{ 7,8,6,5,4,3 });
|
||||
|
||||
REQUIRE_THROWS_AS(f.as<std::string>(), std::logic_error);
|
||||
}
|
||||
Loading…
Reference in New Issue