pub struct IrEffectNode {Show 17 fields
pub id: String,
pub kind: IrEffectKind,
pub binding: Option<String>,
pub required_capabilities: Vec<String>,
pub construct_use: Option<IrConstructUse>,
pub idempotency_key: String,
pub span: SourceSpan,
pub timeout_seconds: Option<u64>,
pub access_grants: Vec<IrAccessGrant>,
pub turn_skills: Vec<String>,
pub resource: Option<String>,
pub agent: Option<String>,
pub workflow_target: Option<String>,
pub endorsed: bool,
pub declassified: bool,
pub selected_by: Option<(String, String)>,
pub exec_target: Option<IrExecTarget>,
}Fields§
§id: String§kind: IrEffectKind§binding: Option<String>§required_capabilities: Vec<String>§construct_use: Option<IrConstructUse>§idempotency_key: String§span: SourceSpan§timeout_seconds: Option<u64>Creation-anchored deadline from a timeout <duration> clause.
access_grants: Vec<IrAccessGrant>Turn-access grants (with access to …) lowered onto an agent.tell effect as
authority-narrowing metadata (Proposal A). Empty for non-grant effects.
turn_skills: Vec<String>Turn-scoped skills (with skills [...]) pinned onto an agent.tell effect as
provenance (context-assembly Phase 7). Recorded, not enforced — the owned
catalogue stays discover-all. Empty for effects without a skill pin.
resource: Option<String>The named resource (file store / channel) a direct effect touches, if any —
e.g. the store of a read/write. Surfaced so information-flow analysis can
see rule-body data flows, not just turn-access grants. None for effects
that touch no named resource. Not part of the .ir snapshot.
agent: Option<String>The agent a tell addresses (its target), surfaced so information-flow
analysis can model the turn’s egress to that agent’s provider. None for
non-tell effects. Not part of the .ir snapshot.
workflow_target: Option<String>The workflow an invoke addresses, surfaced so information-flow analysis can
enumerate and govern invoke membrane ports. None for non-invoke effects.
Not part of the .ir snapshot.
endorsed: boolThe endorsed source marker (DR-0027 I-IFC3): the author declared this effect
(a coerce) an integrity-raising crossing. Surfaced so the trusted surface is
visible at the source crossing point. Not part of the .ir snapshot.
declassified: boolThe declassified source marker (DR-0027 I-IFC3): the author declared this
coerce a confidentiality-lowering crossing (its output schema bounds the
leak). Surfaced for audit. Not part of the .ir snapshot.
selected_by: Option<(String, String)>The innermost case <scrutinee> { <pattern> => … } arm this effect sits in,
as (scrutinee, pattern) — the discriminated-families selector. Lets the
IFC checker apply NMIF-on-the-selector: a crossing (endorsed/declassified)
selected by a low-integrity discriminant is rejected (DR §5.6 / §7.4). None
for effects outside any case. Not part of the .ir snapshot.
exec_target: Option<IrExecTarget>The exec surface form — raw command string vs manifest capability
(spec/std-script.md “Static checks” item 2) — surfaced so check-time
gates (hosted-raw demotion, manifest resolution) classify the effect
from the AST instead of re-scanning rule-body text. None for
non-exec effects. Not part of the .ir snapshot.
Trait Implementations§
Source§impl Clone for IrEffectNode
impl Clone for IrEffectNode
Source§fn clone(&self) -> IrEffectNode
fn clone(&self) -> IrEffectNode
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more