载入中...
搜索中...
未找到
Condition.cpp
浏览该文件的文档.
72ConditionResult unavailable(ConditionReasonCode reason, std::string_view kind, std::string_view key) {
134 return ConditionResult(true, ConditionReasonCode::Passed, std::move(evidence), std::move(details));
137ConditionResult ConditionResult::failed(ConditionReasonCode reason, Value evidence, Value details) {
247 return ConditionResult::success({}, object({{"kind", Value("all")}, {"children", childDetails(results)}}));
309 if (!allowed) return unavailable(ConditionReasonCode::AuthorityUnavailable, "authority_check", key_);
Pure, explainable condition trees shared by gameplay domains.
Explain one condition evaluation in a UI- and log-friendly form.
Definition Condition.h:129
static ConditionResult failed(ConditionReasonCode reason, Value evidence={}, Value details=Value::Object{})
Construct a rejected result with a stable reason and explanation.
Definition Condition.cpp:137
static ConditionResult success(Value evidence={}, Value details=Value::Object{})
Construct a passed result with optional evidence and details.
Definition Condition.cpp:133
const Value & evidence() const noexcept
Observed value or child evidence owned by this result.
Definition Condition.h:141
const Value & details() const noexcept
Structured details suitable for UI explanation.
Definition Condition.h:143
const std::optional< ScriptConditionDeclaration > & scriptDeclaration() const noexcept
Return an optional script dependency/determinism declaration.
Definition Condition.h:241
static Condition hasAttribute(std::string attribute)
Require an attribute to exist.
Definition Condition.cpp:173
static Condition all(std::vector< Condition > children)
Construct a conjunction of child conditions.
Definition Condition.cpp:141
const std::vector< Condition > & children() const noexcept
Return owned children; empty for a leaf node.
Definition Condition.h:231
static Condition not_(Condition child)
Construct a logical negation of one child condition.
Definition Condition.cpp:153
ConditionResult evaluate(const EvaluationContext &context) const
Evaluate this tree against a read-only context.
Definition Condition.cpp:228
const std::string & key() const noexcept
Return the key/tag/scope/name used by a leaf, if applicable.
Definition Condition.h:233
bool isValid() const noexcept
Return whether the factory invariants for this node hold.
Definition Condition.cpp:207
static Condition stateEquals(std::string key, Value expected)
Require a named state value to equal the expected value.
Definition Condition.cpp:185
static Condition policyCall(std::string name, Value arguments=Value::Object{}, std::optional< ScriptConditionDeclaration > scriptDeclaration=std::nullopt)
Call a named read-only policy and use its ConditionResult.
Definition Condition.cpp:198
const Value & expected() const noexcept
Return the expected value owned by Compare/StateEquals.
Definition Condition.h:237
const Value & arguments() const noexcept
Return owned PolicyCall arguments.
Definition Condition.h:239
static Condition compare(std::string key, CompareOperator op, Value expected)
Compare a context value against an expected scalar value.
Definition Condition.cpp:159
static Condition authorityCheck(std::string scope)
Require read-only authority for a scope.
Definition Condition.cpp:192
static Condition any(std::vector< Condition > children)
Construct a disjunction of child conditions.
Definition Condition.cpp:147
static Condition hasResource(std::string resource)
Require a resource to exist.
Definition Condition.cpp:179
Read-only state boundary used by every condition evaluation.
Definition Condition.h:166
std::variant< std::monostate, std::int64_t, double, std::string, bool > Value
Definition Database.h:26
Definition Condition.cpp:7
@ NotEqual
@ GreaterEqual
@ LessEqual
const char * conditionKindName(ConditionKind kind) noexcept
Return the stable lowercase spelling of a condition node kind. @ownership Borrowed process-static tex...
Definition Condition.cpp:105
@ HasAttribute
@ StateEquals
@ AuthorityCheck
@ HasResource
@ PolicyCall
const char * conditionReasonCodeName(ConditionReasonCode code) noexcept
Return the stable lowercase spelling of a condition reason code. @ownership Borrowed process-static t...
Definition Condition.cpp:82
const char * compareOperatorName(CompareOperator op) noexcept
Return the stable lowercase spelling of a comparison operator. @ownership Borrowed process-static tex...
Definition Condition.cpp:121
ConditionReasonCode
Stable machine-readable explanation code for a condition outcome.
Definition Condition.h:74
@ ValueMismatch
@ MissingValue
@ TagUnavailable
@ InvalidCondition
@ NoChildPassed
@ PolicyUnavailable
@ PolicyRejected
@ StateMissing
@ TagMissing
@ ResourceMissing
@ StateMismatch
@ ChildFailed
@ AuthorityDenied
@ AttributeMissing
@ AuthorityUnavailable
Result< T > failed(Status status, eve::DiagnosticCode code, RuleId rule, std::string message)
Construct a failed editing result with explicit status and diagnostic categories.
Definition EditingResult.h:70