LeechCraft  0.6.70-16373-g319c272718
Modular cross-platform feature rich live environment.
LC::Util::oral::detail Namespace Reference

Namespaces

 PostgreSQL
 
 SQLite
 

Classes

struct  AdaptDelete
 
class  AdaptInsert
 
class  AdaptUpdate
 
struct  AggregateType
 
class  AssignList
 
struct  CountAll
 
class  DeleteByFieldsWrapper
 
struct  DetectShift
 
struct  DetectShift< Seq, Seq >
 
struct  DetectShift< Seq, std::tuple< Args... > >
 
class  ExprTree
 
class  ExprTree< ExprType::ConstTrue, void, void >
 
class  ExprTree< ExprType::LeafData, T, void >
 
class  ExprTree< ExprType::LeafStaticPlaceholder, MemberPtrs< Ptr >, void >
 
struct  GroupBy
 
struct  GroupNone
 
struct  HandleAggSelector
 
struct  HandleSelector
 
struct  HandleSelector< T, AggregateType< AggregateFunction::Count, CountAllPtr > >
 
struct  HandleSelector< T, AggregateType< AggregateFunction::Count, Ptr > >
 
struct  HandleSelector< T, AggregateType< AggregateFunction::Max, Ptr > >
 
struct  HandleSelector< T, AggregateType< AggregateFunction::Min, Ptr > >
 
struct  HandleSelector< T, MemberPtrs< Ptrs... > >
 
struct  HandleSelector< T, SelectorUnion< L, R > >
 
struct  HandleSelector< T, SelectWhole >
 
struct  HandleSelectorResult
 
struct  HSBaseAll
 
struct  HSBaseFirst
 
struct  InfixBinary
 
struct  InfixBinaryProxy
 
struct  IsExprTree
 
struct  IsExprTree< ExprTree< Type, L, R > >
 
struct  IsPKey
 
struct  IsPKey< PKey< U, Tags... > >
 
struct  IsReferencesTarget
 
struct  IsReferencesTarget< PKey< U, Tags... > >
 
struct  IsReferencesTarget< Unique< U > >
 
struct  IsSelector
 
struct  IsSelector< AggregateType< Fun, Ptr > >
 
struct  IsSelector< MemberPtrs< Ptrs... > >
 
struct  IsSelector< SelectorUnion< L, R > >
 
struct  IsSelector< SelectWhole >
 
struct  LimitNone
 
struct  MemberPtrs
 
struct  OffsetNone
 
struct  OrderBy
 
struct  OrderNone
 
struct  SelectorUnion
 
struct  SelectWhole
 
class  SelectWrapper
 
class  SelectWrapperCommon
 
struct  WrapDirect
 

Typedefs

template<typename Seq , int Idx>
using ValueAtC_t = std::decay_t< decltype(Get< Idx >(std::declval< Seq >()))>
 
template<typename T >
using UnwrapIndirect_t = typename std::conditional_t< IsIndirect< T > {}, T, WrapDirect< T > >::value_type
 
template<typename L , typename R >
using EnableRelOp_t = std::enable_if_t< EitherIsExprTree< L, R >()>
 

Enumerations

enum  ExprType {
  ExprType::ConstTrue,
  ExprType::LeafStaticPlaceholder,
  ExprType::LeafData,
  ExprType::Greater,
  ExprType::Less,
  ExprType::Equal,
  ExprType::Geq,
  ExprType::Leq,
  ExprType::Neq,
  ExprType::Like,
  ExprType::And,
  ExprType::Or
}
 
enum  AggregateFunction {
  AggregateFunction::Count,
  AggregateFunction::Min,
  AggregateFunction::Max
}
 
enum  SelectBehaviour {
  SelectBehaviour::Some,
  SelectBehaviour::One
}
 
enum  ResultBehaviour {
  All,
  First
}
 

Functions

bool MatchesSchema (const QString &baseName, const QString &schema, QSqlDatabase &db)
 
template<size_t Idx, typename Seq >
decltype(auto) constexpr Get (const Seq &seq)
 
template<size_t Idx, typename Seq >
decltype(auto) constexpr Get (Seq &seq)
 
template<typename T , CtString str>
consteval auto MorphFieldName ()
 
template<typename Seq , int Idx>
consteval auto GetFieldName ()
 
template<auto Ptr>
constexpr size_t FieldIndex () noexcept
 
template<auto Ptr>
constexpr auto GetFieldNamePtr () noexcept
 
template<auto Ptr>
constexpr auto GetQualifiedFieldNamePtr () noexcept
 
template<typename T >
QVariant ToVariantF (const T &t) noexcept
 
template<size_t Ix, typename Seq >
void BindAtIndex (const Seq &seq, QSqlQuery &query, bool bindPrimaryKey)
 
template<typename Seq >
auto DoInsert (const Seq &seq, QSqlQuery &insertQuery, bool bindPrimaryKey)
 
template<typename Seq >
consteval int PKeyIndexUnsafe ()
 
template<typename Seq >
consteval int PKeyIndex ()
 
template<typename Seq >
constexpr auto HasAutogenPKey () noexcept
 
template<typename Seq >
constexpr auto ExtractConflictingFields (InsertAction::Replace::PKeyType)
 
template<typename Seq , auto... Ptrs>
constexpr auto ExtractConflictingFields (InsertAction::Replace::FieldsType< Ptrs... >)
 
template<typename T , size_t... Indices>
InitializeFromQuery (const QSqlQuery &q, std::index_sequence< Indices... >, int startIdx) noexcept
 
template<ExprType Type>
constexpr auto TypeToSql () noexcept
 
constexpr bool IsRelational (ExprType type) noexcept
 
template<ExprType Type, typename Seq , typename L , typename R >
constexpr bool Typecheck ()
 
template<typename T >
constexpr auto AsLeafData (const T &node) noexcept
 
template<ExprType Type, typename L , typename R >
auto MakeExprTree (const L &left, const R &right) noexcept
 
template<typename L , typename R >
constexpr bool EitherIsExprTree () noexcept
 
template<typename L , typename R , typename = EnableRelOp_t<L, R>>
auto operator< (const L &left, const R &right) noexcept
 
template<typename L , typename R , typename = EnableRelOp_t<L, R>>
auto operator> (const L &left, const R &right) noexcept
 
template<typename L , typename R , typename = EnableRelOp_t<L, R>>
auto operator== (const L &left, const R &right) noexcept
 
template<typename L , typename R , typename = EnableRelOp_t<L, R>>
auto operator!= (const L &left, const R &right) noexcept
 
template<typename L , ExprType Op>
auto operator| (const L &left, InfixBinary< Op >) noexcept
 
template<typename L , ExprType Op, typename R >
auto operator| (const InfixBinaryProxy< L, Op > &left, const R &right) noexcept
 
template<typename L , typename R , typename = EnableRelOp_t<L, R>>
auto operator && (const L &left, const R &right) noexcept
 
template<typename L , typename R , typename = EnableRelOp_t<L, R>>
auto operator|| (const L &left, const R &right) noexcept
 
template<CtString BindPrefix, typename Seq , typename Tree >
constexpr auto ExprTreeToSql () noexcept
 
template<CtString BindPrefix, typename Seq , typename Tree >
void BindExprTree (const Tree &tree, QSqlQuery &query)
 
template<typename L , typename R , typename = std::enable_if_t<IsSelector<L> {} && IsSelector<R> {}>>
SelectorUnion< L, R > operator+ (L, R) noexcept
 
template<auto Ptr>
auto MemberFromVariant (const QVariant &var) noexcept
 
template<auto Ptr>
auto MakeIndexedQueryHandler (const QSqlQuery &q, int startIdx=0) noexcept
 
template<auto... Ptrs>
auto MakeIndexedQueryHandler (MemberPtrs< Ptrs... >, const QSqlQuery &q, int startIdx) noexcept
 
template<size_t RepIdx, size_t TupIdx, typename Tuple , typename NewType >
decltype(auto) constexpr GetReplaceTupleElem (Tuple &&tuple, NewType &&arg) noexcept
 
template<size_t RepIdx, typename NewType , typename Tuple , size_t... TupIdxs>
constexpr auto ReplaceTupleElemImpl (Tuple &&tuple, NewType &&arg, std::index_sequence< TupIdxs... >) noexcept
 
template<size_t RepIdx, typename NewType , typename... TupleArgs>
constexpr auto ReplaceTupleElem (std::tuple< TupleArgs... > &&tuple, NewType &&arg) noexcept
 
template<typename... LArgs, typename... RArgs>
auto Combine (std::tuple< LArgs... > &&left, std::tuple< RArgs... > &&right) noexcept
 
template<typename... LArgs, typename R >
auto Combine (std::tuple< LArgs... > &&left, const R &right) noexcept
 
template<typename L , typename... RArgs>
auto Combine (const L &left, std::tuple< RArgs... > &&right) noexcept
 
template<typename L , typename R >
auto Combine (const L &left, const R &right) noexcept
 
template<ResultBehaviour ResultBehaviour, typename ResList >
decltype(auto) HandleResultBehaviour (ResList &&list) noexcept
 
template<typename F , typename R >
 HandleSelectorResult (QString, F, R) -> HandleSelectorResult< F, R >
 
template<typename L , typename O >
constexpr auto LimitOffsetToString () noexcept
 
template<typename L , typename O >
void BindLimitOffset (QSqlQuery &query, L limit, O offset) noexcept
 
constexpr auto CombineBehaviour (ResultBehaviour l, ResultBehaviour r) noexcept
 
template<typename T , size_t... Fields>
constexpr auto ExtractConstraintFields (UniqueSubset< Fields... >)
 
template<typename T , size_t... Fields>
constexpr auto ExtractConstraintFields (PrimaryKey< Fields... >)
 
template<typename T >
constexpr auto GetConstraintsStrings () noexcept
 
template<typename ImplFactory , typename T , size_t... Indices>
constexpr auto GetTypes (std::index_sequence< Indices... >) noexcept
 
template<auto Name, typename ImplFactory , typename T >
constexpr auto AdaptCreateTableNamed () noexcept
 
template<typename ImplFactory , typename T >
constexpr auto AdaptCreateTable () noexcept
 

Variables

template<typename S >
constexpr auto SeqIndices = std::make_index_sequence<SeqSize<S>> {}
 
template<typename S >
constexpr auto FieldNames
 
template<typename S >
constexpr auto BoundFieldNames
 
template<typename S >
constexpr auto QualifiedFieldNames
 
template<typename T >
concept TypeNameCustomized = requires { typename T::TypeName; }
 
template<typename T >
concept BaseTypeCustomized = requires { typename T::BaseType; }
 
template<typename Seq >
constexpr int PKeyIndex_v = PKeyIndex<Seq> ()
 
template<typename Seq >
concept HasPKey = PKeyIndexUnsafe<Seq> () >= 0
 
constexpr auto ConstTrueTree_v = ExprTree<ExprType::ConstTrue> {}
 
constexpr CountAllCountAllPtr = nullptr
 

Typedef Documentation

◆ EnableRelOp_t

template<typename L , typename R >
using LC::Util::oral::detail::EnableRelOp_t = typedef std::enable_if_t<EitherIsExprTree<L, R> ()>

Definition at line 822 of file oral.h.

◆ UnwrapIndirect_t

template<typename T >
using LC::Util::oral::detail::UnwrapIndirect_t = typedef typename std::conditional_t<IsIndirect<T> {}, T, WrapDirect<T> >::value_type

Definition at line 582 of file oral.h.

◆ ValueAtC_t

template<typename Seq , int Idx>
using LC::Util::oral::detail::ValueAtC_t = typedef std::decay_t<decltype (Get<Idx> (std::declval<Seq> ()))>

Definition at line 316 of file oral.h.

Enumeration Type Documentation

◆ AggregateFunction

Enumerator
Count 
Min 
Max 

Definition at line 901 of file oral.h.

◆ ExprType

Enumerator
ConstTrue 
LeafStaticPlaceholder 
LeafData 
Greater 
Less 
Equal 
Geq 
Leq 
Neq 
Like 
And 
Or 

Definition at line 517 of file oral.h.

◆ ResultBehaviour

Enumerator
All 
First 

Definition at line 1091 of file oral.h.

◆ SelectBehaviour

Enumerator
Some 
One 

Definition at line 1016 of file oral.h.

Function Documentation

◆ AdaptCreateTable()

template<typename ImplFactory , typename T >
constexpr auto LC::Util::oral::detail::AdaptCreateTable ( )
noexcept

Definition at line 1617 of file oral.h.

◆ AdaptCreateTableNamed()

template<auto Name, typename ImplFactory , typename T >
constexpr auto LC::Util::oral::detail::AdaptCreateTableNamed ( )
noexcept

Definition at line 1594 of file oral.h.

References LC::Util::JoinTup(), and LC::Util::ZipWith().

+ Here is the call graph for this function:

◆ AsLeafData()

template<typename T >
constexpr auto LC::Util::oral::detail::AsLeafData ( const T &  node)
noexcept

Definition at line 722 of file oral.h.

Referenced by MakeExprTree(), and LC::Util::oral::detail::ExprTree< ExprType::LeafStaticPlaceholder, MemberPtrs< Ptr >, void >::operator=().

+ Here is the caller graph for this function:

◆ BindAtIndex()

template<size_t Ix, typename Seq >
void LC::Util::oral::detail::BindAtIndex ( const Seq &  seq,
QSqlQuery &  query,
bool  bindPrimaryKey 
)

Definition at line 331 of file oral.h.

References LC::Util::ToString(), and ToVariantF().

+ Here is the call graph for this function:

◆ BindExprTree()

template<CtString BindPrefix, typename Seq , typename Tree >
void LC::Util::oral::detail::BindExprTree ( const Tree &  tree,
QSqlQuery &  query 
)

Definition at line 896 of file oral.h.

Referenced by LC::Util::oral::detail::DeleteByFieldsWrapper< T >::operator()(), and LC::Util::oral::detail::AdaptUpdate< T >::operator()().

+ Here is the caller graph for this function:

◆ BindLimitOffset()

template<typename L , typename O >
void LC::Util::oral::detail::BindLimitOffset ( QSqlQuery &  query,
limit,
offset 
)
noexcept

Definition at line 1164 of file oral.h.

◆ Combine() [1/4]

template<typename... LArgs, typename... RArgs>
auto LC::Util::oral::detail::Combine ( std::tuple< LArgs... > &&  left,
std::tuple< RArgs... > &&  right 
)
noexcept

Definition at line 1068 of file oral.h.

Referenced by LC::Util::oral::detail::HandleSelector< T, SelectorUnion< L, R > >::Initializer().

+ Here is the caller graph for this function:

◆ Combine() [2/4]

template<typename... LArgs, typename R >
auto LC::Util::oral::detail::Combine ( std::tuple< LArgs... > &&  left,
const R &  right 
)
noexcept

Definition at line 1074 of file oral.h.

◆ Combine() [3/4]

template<typename L , typename... RArgs>
auto LC::Util::oral::detail::Combine ( const L &  left,
std::tuple< RArgs... > &&  right 
)
noexcept

Definition at line 1080 of file oral.h.

◆ Combine() [4/4]

template<typename L , typename R >
auto LC::Util::oral::detail::Combine ( const L &  left,
const R &  right 
)
noexcept

Definition at line 1086 of file oral.h.

◆ CombineBehaviour()

constexpr auto LC::Util::oral::detail::CombineBehaviour ( ResultBehaviour  l,
ResultBehaviour  r 
)
noexcept

Definition at line 1247 of file oral.h.

References All, and First.

◆ DoInsert()

template<typename Seq >
auto LC::Util::oral::detail::DoInsert ( const Seq &  seq,
QSqlQuery &  insertQuery,
bool  bindPrimaryKey 
)

Definition at line 338 of file oral.h.

References LC::Util::DBLock::DumpError().

Referenced by LC::Util::oral::detail::AdaptUpdate< T >::operator()().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EitherIsExprTree()

template<typename L , typename R >
constexpr bool LC::Util::oral::detail::EitherIsExprTree ( )
noexcept

Definition at line 812 of file oral.h.

◆ ExprTreeToSql()

template<CtString BindPrefix, typename Seq , typename Tree >
constexpr auto LC::Util::oral::detail::ExprTreeToSql ( )
noexcept

Definition at line 890 of file oral.h.

Referenced by LC::Util::oral::detail::DeleteByFieldsWrapper< T >::operator()(), and LC::Util::oral::detail::AdaptUpdate< T >::operator()().

+ Here is the caller graph for this function:

◆ ExtractConflictingFields() [1/2]

template<typename Seq >
constexpr auto LC::Util::oral::detail::ExtractConflictingFields ( InsertAction::Replace::PKeyType  )

Definition at line 389 of file oral.h.

◆ ExtractConflictingFields() [2/2]

template<typename Seq , auto... Ptrs>
constexpr auto LC::Util::oral::detail::ExtractConflictingFields ( InsertAction::Replace::FieldsType< Ptrs... >  )

Definition at line 395 of file oral.h.

◆ ExtractConstraintFields() [1/2]

template<typename T , size_t... Fields>
constexpr auto LC::Util::oral::detail::ExtractConstraintFields ( UniqueSubset< Fields... >  )

Definition at line 1562 of file oral.h.

References LC::Util::Join().

+ Here is the call graph for this function:

◆ ExtractConstraintFields() [2/2]

template<typename T , size_t... Fields>
constexpr auto LC::Util::oral::detail::ExtractConstraintFields ( PrimaryKey< Fields... >  )

Definition at line 1568 of file oral.h.

References LC::Util::Join().

+ Here is the call graph for this function:

◆ FieldIndex()

template<auto Ptr>
constexpr size_t LC::Util::oral::detail::FieldIndex ( )
noexcept

Definition at line 189 of file oral.h.

◆ Get() [1/2]

template<size_t Idx, typename Seq >
decltype(auto) constexpr LC::Util::oral::detail::Get ( const Seq &  seq)

Definition at line 138 of file oral.h.

◆ Get() [2/2]

template<size_t Idx, typename Seq >
decltype(auto) constexpr LC::Util::oral::detail::Get ( Seq &  seq)

Definition at line 144 of file oral.h.

◆ GetConstraintsStrings()

template<typename T >
constexpr auto LC::Util::oral::detail::GetConstraintsStrings ( )
noexcept

Definition at line 1574 of file oral.h.

References LC::Util::requires().

+ Here is the call graph for this function:

◆ GetFieldName()

template<typename Seq , int Idx>
consteval auto LC::Util::oral::detail::GetFieldName ( )

◆ GetFieldNamePtr()

template<auto Ptr>
constexpr auto LC::Util::oral::detail::GetFieldNamePtr ( )
noexcept

Definition at line 196 of file oral.h.

◆ GetQualifiedFieldNamePtr()

template<auto Ptr>
constexpr auto LC::Util::oral::detail::GetQualifiedFieldNamePtr ( )
noexcept

Definition at line 203 of file oral.h.

◆ GetReplaceTupleElem()

template<size_t RepIdx, size_t TupIdx, typename Tuple , typename NewType >
decltype(auto) constexpr LC::Util::oral::detail::GetReplaceTupleElem ( Tuple &&  tuple,
NewType &&  arg 
)
noexcept

Definition at line 1024 of file oral.h.

◆ GetTypes()

template<typename ImplFactory , typename T , size_t... Indices>
constexpr auto LC::Util::oral::detail::GetTypes ( std::index_sequence< Indices... >  )
noexcept

Definition at line 1588 of file oral.h.

◆ HandleResultBehaviour()

template<ResultBehaviour ResultBehaviour, typename ResList >
decltype(auto) LC::Util::oral::detail::HandleResultBehaviour ( ResList &&  list)
noexcept

Definition at line 1098 of file oral.h.

References All, and First.

◆ HandleSelectorResult()

template<typename F , typename R >
LC::Util::oral::detail::HandleSelectorResult ( QString  ,
,
 
) -> HandleSelectorResult< F, R >

◆ HasAutogenPKey()

template<typename Seq >
constexpr auto LC::Util::oral::detail::HasAutogenPKey ( )
noexcept

Definition at line 380 of file oral.h.

◆ InitializeFromQuery()

template<typename T , size_t... Indices>
T LC::Util::oral::detail::InitializeFromQuery ( const QSqlQuery &  q,
std::index_sequence< Indices... >  ,
int  startIdx 
)
noexcept

Definition at line 505 of file oral.h.

References LC::Util::requires().

+ Here is the call graph for this function:

◆ IsRelational()

constexpr bool LC::Util::oral::detail::IsRelational ( ExprType  type)
noexcept

Definition at line 562 of file oral.h.

References Equal, Geq, Greater, Leq, Less, Like, and Neq.

Referenced by Typecheck().

+ Here is the caller graph for this function:

◆ LimitOffsetToString()

template<typename L , typename O >
constexpr auto LC::Util::oral::detail::LimitOffsetToString ( )
noexcept

Definition at line 1145 of file oral.h.

◆ MakeExprTree()

template<ExprType Type, typename L , typename R >
auto LC::Util::oral::detail::MakeExprTree ( const L &  left,
const R &  right 
)
noexcept

Definition at line 804 of file oral.h.

References AsLeafData().

+ Here is the call graph for this function:

◆ MakeIndexedQueryHandler() [1/2]

template<auto Ptr>
auto LC::Util::oral::detail::MakeIndexedQueryHandler ( const QSqlQuery &  q,
int  startIdx = 0 
)
noexcept

Definition at line 999 of file oral.h.

Referenced by LC::Util::oral::detail::HandleSelector< T, MemberPtrs< Ptrs... > >::Initializer(), and MakeIndexedQueryHandler().

+ Here is the caller graph for this function:

◆ MakeIndexedQueryHandler() [2/2]

template<auto... Ptrs>
auto LC::Util::oral::detail::MakeIndexedQueryHandler ( MemberPtrs< Ptrs... >  ,
const QSqlQuery &  q,
int  startIdx 
)
noexcept

Definition at line 1005 of file oral.h.

References MakeIndexedQueryHandler().

+ Here is the call graph for this function:

◆ MatchesSchema()

bool LC::Util::oral::detail::MatchesSchema ( const QString &  baseName,
const QString &  schema,
QSqlDatabase &  db 
)

Definition at line 18 of file migrate.h.

References LC::Util::RunTextQuery().

Referenced by LC::Util::oral::Migrate().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MemberFromVariant()

template<auto Ptr>
auto LC::Util::oral::detail::MemberFromVariant ( const QVariant &  var)
noexcept

Definition at line 993 of file oral.h.

◆ MorphFieldName()

template<typename T , CtString str>
consteval auto LC::Util::oral::detail::MorphFieldName ( )

Definition at line 150 of file oral.h.

References LC::Util::requires().

+ Here is the call graph for this function:

◆ operator &&()

template<typename L , typename R , typename = EnableRelOp_t<L, R>>
auto LC::Util::oral::detail::operator&& ( const L &  left,
const R &  right 
)
noexcept

Definition at line 878 of file oral.h.

◆ operator!=()

template<typename L , typename R , typename = EnableRelOp_t<L, R>>
auto LC::Util::oral::detail::operator!= ( const L &  left,
const R &  right 
)
noexcept

Definition at line 843 of file oral.h.

◆ operator+()

template<typename L , typename R , typename = std::enable_if_t<IsSelector<L> {} && IsSelector<R> {}>>
SelectorUnion<L, R> LC::Util::oral::detail::operator+ ( ,
 
)
noexcept

Definition at line 942 of file oral.h.

◆ operator<()

template<typename L , typename R , typename = EnableRelOp_t<L, R>>
auto LC::Util::oral::detail::operator< ( const L &  left,
const R &  right 
)
noexcept

Definition at line 825 of file oral.h.

◆ operator==()

template<typename L , typename R , typename = EnableRelOp_t<L, R>>
auto LC::Util::oral::detail::operator== ( const L &  left,
const R &  right 
)
noexcept

Definition at line 837 of file oral.h.

◆ operator>()

template<typename L , typename R , typename = EnableRelOp_t<L, R>>
auto LC::Util::oral::detail::operator> ( const L &  left,
const R &  right 
)
noexcept

Definition at line 831 of file oral.h.

◆ operator|() [1/2]

template<typename L , ExprType Op>
auto LC::Util::oral::detail::operator| ( const L &  left,
InfixBinary< Op >   
)
noexcept

Definition at line 866 of file oral.h.

◆ operator|() [2/2]

template<typename L , ExprType Op, typename R >
auto LC::Util::oral::detail::operator| ( const InfixBinaryProxy< L, Op > &  left,
const R &  right 
)
noexcept

Definition at line 872 of file oral.h.

◆ operator||()

template<typename L , typename R , typename = EnableRelOp_t<L, R>>
auto LC::Util::oral::detail::operator|| ( const L &  left,
const R &  right 
)
noexcept

Definition at line 884 of file oral.h.

◆ PKeyIndex()

template<typename Seq >
consteval int LC::Util::oral::detail::PKeyIndex ( )

Definition at line 366 of file oral.h.

◆ PKeyIndexUnsafe()

template<typename Seq >
consteval int LC::Util::oral::detail::PKeyIndexUnsafe ( )

Definition at line 354 of file oral.h.

◆ ReplaceTupleElem()

template<size_t RepIdx, typename NewType , typename... TupleArgs>
constexpr auto LC::Util::oral::detail::ReplaceTupleElem ( std::tuple< TupleArgs... > &&  tuple,
NewType &&  arg 
)
noexcept

Definition at line 1042 of file oral.h.

◆ ReplaceTupleElemImpl()

template<size_t RepIdx, typename NewType , typename Tuple , size_t... TupIdxs>
constexpr auto LC::Util::oral::detail::ReplaceTupleElemImpl ( Tuple &&  tuple,
NewType &&  arg,
std::index_sequence< TupIdxs... >   
)
noexcept

Definition at line 1033 of file oral.h.

◆ ToVariantF()

template<typename T >
QVariant LC::Util::oral::detail::ToVariantF ( const T &  t)
noexcept

◆ Typecheck()

template<ExprType Type, typename Seq , typename L , typename R >
constexpr bool LC::Util::oral::detail::Typecheck ( )

Definition at line 585 of file oral.h.

References IsRelational(), and LC::Util::requires().

+ Here is the call graph for this function:

◆ TypeToSql()

template<ExprType Type>
constexpr auto LC::Util::oral::detail::TypeToSql ( )
noexcept

Definition at line 538 of file oral.h.

References And, Equal, Geq, Greater, Leq, Less, Like, Neq, and Or.

Variable Documentation

◆ BaseTypeCustomized

template<typename T >
concept LC::Util::oral::detail::BaseTypeCustomized = requires { typename T::BaseType; }

Definition at line 213 of file oral.h.

◆ BoundFieldNames

template<typename S >
constexpr auto LC::Util::oral::detail::BoundFieldNames
Initial value:
= []<size_t... Ix> (std::index_sequence<Ix...>) constexpr
{
return std::tuple { (":" + GetFieldName<S, Ix> ())... };
} (SeqIndices<S>)

Definition at line 177 of file oral.h.

◆ ConstTrueTree_v

◆ CountAllPtr

constexpr CountAll* LC::Util::oral::detail::CountAllPtr = nullptr
inline

Definition at line 913 of file oral.h.

◆ FieldNames

template<typename S >
constexpr auto LC::Util::oral::detail::FieldNames
Initial value:
= []<size_t... Ix> (std::index_sequence<Ix...>) constexpr
{
return std::tuple { GetFieldName<S, Ix> ()... };
} (SeqIndices<S>)

Definition at line 171 of file oral.h.

◆ HasPKey

template<typename Seq >
concept LC::Util::oral::detail::HasPKey = PKeyIndexUnsafe<Seq> () >= 0

Definition at line 377 of file oral.h.

◆ PKeyIndex_v

template<typename Seq >
constexpr int LC::Util::oral::detail::PKeyIndex_v = PKeyIndex<Seq> ()

Definition at line 374 of file oral.h.

◆ QualifiedFieldNames

template<typename S >
constexpr auto LC::Util::oral::detail::QualifiedFieldNames
Initial value:
= []<size_t... Ix> (std::index_sequence<Ix...>) constexpr
{
return std::tuple { (S::ClassName + "." + GetFieldName<S, Ix> ())... };
} (SeqIndices<S>)

Definition at line 183 of file oral.h.

◆ SeqIndices

template<typename S >
constexpr auto LC::Util::oral::detail::SeqIndices = std::make_index_sequence<SeqSize<S>> {}

Definition at line 168 of file oral.h.

◆ TypeNameCustomized

template<typename T >
concept LC::Util::oral::detail::TypeNameCustomized = requires { typename T::TypeName; }

Definition at line 210 of file oral.h.