2/% QString guard = _database->namespaces().join(
"_").toUpper() +
"_SQL_H_";
3%/ #ifndef _/%= guard %/
8namespace /%= _database->namespaces().join(
"::") %/::Sql
17 EQ, GT, LT, LTE, GTE, NEQ, LIKE
21 template<
typename _T_,
class Enable =
void>
22 struct value_conversion_helper;
24 template<
typename _T_>
25 requires (not std::is_enum_v<_T_>)
26 struct value_conversion_helper<_T_>
28 static knowCore::Value toValue(
const _T_& _t)
30 return knowCore::Value::fromValue(_t);
32 static _T_ fromValue(
const knowCore::Value& _variant)
34 if(_variant.isEmpty())
38 return _variant.value<_T_>(knowCore::TypeCheckingMode::Force).expect_success();
42 template<
typename _T_>
43 requires (std::is_enum_v<_T_>)
44 struct value_conversion_helper<_T_>
46 static knowCore::Value toValue(
const _T_& _t)
48 return knowCore::Value::fromValue(
int(_t));
50 static _T_ fromValue(
const knowCore::Value& _variant)
52 if(_variant.isEmpty())
56 return _T_(_variant.value<
int>().expect_success());
62 template<
typename _T_>
63 knowCore::Value toVariant(
const _T_& _t)
65 return details::value_conversion_helper<_T_>::toValue(_t);
67 template<
typename _T_>
68 _T_ fromVariant(
const knowCore::Value& _variant)
70 return details::value_conversion_helper<_T_>::fromValue(_variant);