1#ifndef QX_SQLCONCEPTS_H
2#define QX_SQLCONCEPTS_H
12#include "qx/sql/qx-sqlerror.h"
15#include "qx/utility/qx-stringliteral.h"
24template<
class Struct, Qx::CStringLiteral member>
25struct MemberOverrideConverter;
27template<
typename SelfType,
typename DelayedSelfType>
28struct QxSqlMetaStructOutside;
33 T::template QxSqlMetaStructInside<T>::memberMetadata();
38 QxSqlMetaStructOutside<T, T>::memberMetadata();
46 { Converter<T>::fromSql(tValue, QVariant()) } -> std::same_as<Qx::SqlError>;
47 { Converter<T>::toSql(tValue) } -> std::same_as<QVariant>;
50template<
class K,
typename T, Qx::CStringLiteral N>
52 { MemberOverrideConverter<K, N>::fromSql(tValue, QVariant()) } -> std::same_as<Qx::SqlError>;
53 { MemberOverrideConverter<K, N>::toSql(tValue) } -> std::same_as<QVariant>;
56template<
typename Key,
class Value>
58 { keygen<Key, Value>(v) } -> std::same_as<Key>;
Specifies that a type is an associative container, the value type of which is convertible,...
Definition qx-sqlconcepts.h:66
Specifies that a type is a non-associative container, the value type of which is convertible to/from ...
Definition qx-sqlconcepts.h:62
Specifies that a type is a container, and abides by the other corresponding restrictions for that kin...
Definition qx-sqlconcepts.h:71
Specifies that a type is generally convertible to/from SQL.
Definition qx-sqlconcepts.h:45
Specifies that a type has a known method for creating a corresponding key.
Definition qx-sqlconcepts.h:57
Specifies that a type is a specialization of std::optional that manages values of a SQL convertible t...
Definition qx-sqlconcepts.h:75
Specifies that a type has override conversions for changing to/from SQL.
Definition qx-sqlconcepts.h:51
Specifies that a type is a SQL-tied struct registered with QX_SQL_STRUCT().
Definition qx-sqlconcepts.h:32
Specifies that a type is a SQL-tied struct registered with QX_SQL_STRUCT_OUTSIDE().
Definition qx-sqlconcepts.h:37
Specifies that a type is a SQL-tied struct.
Definition qx-sqlconcepts.h:42
Specifies that a type is a Qt-based associative container type.
Definition qx-concepts.h:520
Specifies that a type is a Qt-based collection type.
Definition qx-concepts.h:524
Specifies that a type is a specialization of a template.
Definition qx-concepts.h:513
The QxSql namespace contains several utilities that are specific to the SQL module and grouped togeth...
Definition qx-sqlconcepts.dox:10