18 #ifndef NURIA_LAZYEVALUATION_HPP
19 #define NURIA_LAZYEVALUATION_HPP
21 #include "essentials.hpp"
22 #include "callback.hpp"
23 #include "variant.hpp"
24 #include <QSharedData>
31 class AbstractConditionEvaluator;
32 class LazyConditionPrivate;
98 LazyCondition (
const QVariant &left, Type type,
const QVariant &right);
106 bool isValid ()
const;
115 const QVariant &left ()
const;
118 const QVariant &right ()
const;
121 operator QVariant ()
const;
140 template<
typename ... Args >
141 inline bool operator() (
const Args & ... args)
149 bool evaluate (
const QVariantList &arguments)
const;
164 QSharedDataPointer< LazyConditionPrivate > d;
215 Field (
int type,
const QVariant &data);
234 template<
typename T >
238 template<
typename T >
239 LazyCondition operator!= (
const T &other)
242 template<
typename T >
243 LazyCondition operator< (
const T &other)
246 template<
typename T >
247 LazyCondition operator<= (
const T &other)
250 template<
typename T >
251 LazyCondition operator> (
const T &other)
254 template<
typename T >
255 LazyCondition operator>= (
const T &other)
263 const QVariant &value ()
const;
276 int customType ()
const;
283 QVariant toVariant ()
const;
316 TestCall (
const QString &name,
const QVariantList &args);
325 bool isNative ()
const;
331 QString name ()
const;
343 const QVariantList &arguments ()
const;
355 template<
typename T >
inline Field val (
const T &value)
362 NURIA_CORE_EXPORT Field arg (
int index);
369 template<
typename ... Args >
370 Field test (
const QString &method,
const Args &... args) {
380 template<
typename ... Args >
393 NURIA_CORE_EXPORT QDebug operator<< (QDebug dbg,
const Nuria::TestCall &call);
394 NURIA_CORE_EXPORT QDebug operator<< (QDebug dbg,
const Nuria::Field &field);
399 Q_DECLARE_METATYPE(Nuria::TestCall)
400 Q_DECLARE_METATYPE(Nuria::Field)
402 #endif // NURIA_LAZYEVALUATION_HPP
Evaluates to (left > right).
Definition: lazyevaluation.hpp:75
Evaluates to (left <= right).
Definition: lazyevaluation.hpp:78
Field encapsulates a value-field for LazyCondition.
Definition: lazyevaluation.hpp:176
A modern style callback mechanism which can be bound to various method types including slots...
Definition: callback.hpp:141
static QVariantList buildList(const Items &...items)
Definition: variant.hpp:547
Definition: lazyevaluation.hpp:187
LazyCondition offers lazily evaluated conditions for C++.
Definition: lazyevaluation.hpp:63
Evaluates to (left >= right).
Definition: lazyevaluation.hpp:76
The TestCall class encapsulates a call to a test function for LazyCondition.
Definition: lazyevaluation.hpp:309
Evaluates to (left == right).
Definition: lazyevaluation.hpp:73
Evaluates to (left < right).
Definition: lazyevaluation.hpp:77
Invalid instance, evaluates to false.
Definition: lazyevaluation.hpp:71
Evaluates to (left != right).
Definition: lazyevaluation.hpp:74
Type
Definition: lazyevaluation.hpp:182
Evaluates to (left).
Definition: lazyevaluation.hpp:72
The AbstractConditionEvaluator class.
Definition: conditionevaluator.hpp:31
Definition: lazyevaluation.hpp:198
Type
Definition: lazyevaluation.hpp:69
Definition: lazyevaluation.hpp:193