|
morph 0.1.0
Asynchronous bridge between GUI thread and business models
|
Rule: exactly one of the listed fields is engaged. More...
#include <forms.hpp>
Public Member Functions | |
| constexpr bool | test (const A &action) const noexcept |
Evaluates the rule against action. | |
| glz::generic_u64 | emitNode () const |
| Emits this rule's x-rules JSON node. | |
Public Attributes | |
| std::tuple< Vs A::*... > | fields |
| Pointers to the member fields this rule ranges over. | |
Static Public Attributes | |
| static constexpr detail::RuleKind | kind = detail::RuleKind::ExactlyOneOf |
| The wire "kind" this rule emits: "exactlyOneOf". | |
| static constexpr bool | isCondition = true |
| Usable as a nested condition: this node's test() is a function of the action, so composing it into an and/or/not tree changes what that tree evaluates to. | |
| static constexpr bool | isPresentation = false |
| Validation rule (not presentation): participates in the gate. | |
Rule: exactly one of the listed fields is engaged.
| A | Action type all fields belong to. |
| Vs | Field member types, one per listed field (must each satisfy EngageableField). |
|
inlinenodiscardconstexprnoexcept |
|
inlinenodiscard |
Emits this rule's x-rules JSON node.
| std::tuple<Vs A::*...> morph::forms::ExactlyOneOf< A, Vs >::fields |
|
staticconstexpr |
The wire "kind" this rule emits: "exactlyOneOf".
|
staticconstexpr |
|
staticconstexpr |