载入中...
搜索中...
未找到
Condition.h
浏览该文件的文档.
101[[nodiscard]] EVENGINE_API_FOUNDATION const char* conditionReasonCodeName(ConditionReasonCode code) noexcept;
110[[nodiscard]] EVENGINE_API_FOUNDATION const char* conditionKindName(ConditionKind kind) noexcept;
119[[nodiscard]] EVENGINE_API_FOUNDATION const char* compareOperatorName(CompareOperator op) noexcept;
129 [[nodiscard("ConditionResult must be inspected before the decision is used")]] ConditionResult {
134 static ConditionResult failed(ConditionReasonCode reason, Value evidence = {}, Value details = Value::Object{});
241 const std::optional<ScriptConditionDeclaration>& scriptDeclaration() const noexcept { return scriptDeclaration_; }
Owning, renderer-independent dynamic values.
Explain one condition evaluation in a UI- and log-friendly form.
Definition Condition.h:129
ConditionReasonCode reasonCode() const noexcept
Stable machine-readable reason code.
Definition Condition.h:139
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
const std::vector< Condition > & children() const noexcept
Return owned children; empty for a leaf node.
Definition Condition.h:231
Condition()=default
Construct an empty All node, which passes vacuously.
const std::string & key() const noexcept
Return the key/tag/scope/name used by a leaf, if applicable.
Definition Condition.h:233
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
CompareOperator compareOperator() const noexcept
Return the comparison operator used by Compare.
Definition Condition.h:235
Read-only state boundary used by every condition evaluation.
Definition Condition.h:166
virtual std::optional< bool > hasTag(std::string_view tag) const =0
Query tag membership; nullopt means the tag source is unavailable.
virtual std::optional< Value > attribute(std::string_view key) const =0
Query an attribute value; nullopt means the attribute is absent.
virtual std::optional< bool > authority(std::string_view scope) const =0
Query authority without changing grants, leases, or state.
virtual std::optional< Value > state(std::string_view key) const =0
Query a state value for StateEquals nodes.
virtual ~EvaluationContext()=default
Releases EvaluationContext resources.
virtual std::optional< Value > resource(std::string_view key) const =0
Query a resource amount or resource marker.
virtual std::optional< ConditionResult > policy(std::string_view name, const Value &arguments) const =0
Evaluate a named read-only policy with owned arguments.
virtual std::optional< Value > value(std::string_view key) const =0
Query a named scalar or structured value for Compare nodes.
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
DeterminismLevel
Determinism contract declared by a script-backed condition policy.
Definition Condition.h:46
@ ToleranceBounded
Results may vary within a documented numeric tolerance.
@ TickDeterministic
Deterministic when evaluated at the injected simulation tick.
@ BitExact
Same inputs produce the same bits without an external clock.
@ ExplicitlyNondeterministic
Result is intentionally not suitable for replay or lockstep.
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
Definition Container.h:602
Metadata a script policy must declare before it is used by a condition.
Definition Condition.h:64
std::vector< std::string > dependencies
Logical state/query names read by the policy.
Definition Condition.h:68