pub struct DirectEffects {
pub reads: Vec<DefinitionId>,
pub writes: Vec<DefinitionId>,
pub calls: Vec<CallAtom>,
pub opaque: bool,
pub emits: bool,
pub tags: bool,
pub faults: bool,
}Expand description
The direct part of a factored effect row (docs/effects-spec.md §7/§11):
the atoms a definition (and everything it statically calls) may perform,
independent of any dispatch-cell narrowing. Mirrors the analyzer’s flat
EffectRow, lowered to wire vocabulary (cells as DefinitionIds, call
kinds as CallAtoms).
Sets are stored as vectors already sorted/deduplicated by the producer so
the encoding is deterministic (the analyzer sources them from BTreeSets).
Fields§
§reads: Vec<DefinitionId>Global cells this row may read.
writes: Vec<DefinitionId>Global cells this row may write.
calls: Vec<CallAtom>Call-kind atoms this row may transitively perform.
opaque: boolThe pessimal top element (docs/effects-spec.md §3): this row performs
a call whose effects inference cannot summarize.
emits: boolNS-A2 (issue #1108, from #1087): the definition may produce content —
narration/dialogue fragments a host renders (glue-only output counts;
tag-only lines do NOT — those set Self::tags). Bool v1.
NS-A2 (issue #1108, from #1087’s second ruling): the definition may
touch the tag channel. Independent of Self::emits. Bool v1.
faults: boolNS-A2 (issue #1108, from #1097): the definition may raise a turn-terminating fault. Bool v1 — per-fault-kind granularity is the reserved refinement and graduates via a section-version bump, the same reservation discipline the capability/handle slots follow.
Trait Implementations§
Source§impl Clone for DirectEffects
impl Clone for DirectEffects
Source§fn clone(&self) -> DirectEffects
fn clone(&self) -> DirectEffects
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more