117 [[nodiscard]]
bool isValid() const noexcept;
128 void addError(const QString &field, const QString &message);
142 [[nodiscard]] QHash<QString, QStringList>
errors() const noexcept;
149 [[nodiscard]] QStringList
errors(const QString &field) const noexcept;
156 [[nodiscard]]
bool hasErrors(const QString &field) const noexcept;
181 explicit operator
bool() const noexcept {
return isValid(); }
194 [[nodiscard]] QVariantHash values() const noexcept;
206 [[nodiscard]] QVariant value(const QString &field) const noexcept;
214 void addValue(const QString &field, const QVariant &value);
226 [[nodiscard]] QVariantHash extras() const noexcept;
239 [[nodiscard]] QVariant extra(const QString &field) const noexcept;
247 void addExtra(const QString &field, const QVariant &extra);
250 QSharedDataPointer<ValidatorResultPrivate> d;
259class CUTELYST_PLUGIN_UTILS_VALIDATOR_EXPORT AwaitedValidatorResult
262 bool await_ready()
const noexcept {
return m_hasResult; }
264 bool await_suspend(std::coroutine_handle<> h)
noexcept
268 m_destroyConn = QObject::connect(m_receiver, &QObject::destroyed, [h,
this] {
270 QString(), QStringLiteral(
"Internal Server Error: the context was destroyed."));
276 return !await_ready();
281 explicit AwaitedValidatorResult(
Context *c)
294 ~AwaitedValidatorResult() { QObject::disconnect(m_destroyConn); }
297 friend class Validator;
301 QMetaObject::Connection m_destroyConn;
302 QPointer<Context> m_receiver;
304 std::coroutine_handle<> m_handle;
305 bool m_hasResult{
false};