pub fn classify_op(
actor: OpActor,
op_kind: &str,
op_address: &Address,
op_index: Option<usize>,
scope: &TurnScope,
) -> AffectednessClassExpand description
Classify a single operation against the current turn scope.
affects(O,S) = conflict(O.target, read_set) ∨ conflict(O.target, write_set).
An op that intersects no part of the scope is Independent. Within the
scope, a live_buffer actor is ProvenanceSpoofed (a lagging sidecar, not a
real edit), a remove/move is StructuralDependency, a read-set
intersection is InputAffecting, and a write-set-only intersection is
OutputContended.
op_index is the op’s within-component node index (after-index for
inserts/replaces, before-index for removes); it narrows exchange
affectedness to the active tail (#loop-guard-exchange-node-granularity).