pub struct CancelOutcome {
pub run_was_already_cancelled: bool,
pub nodes_cancelled: Vec<NodeId>,
pub nodes_already_terminal: Vec<NodeId>,
}Expand description
Outcome of a cancel_run transaction. Lets a thin CLI wrapper report
honestly what actually changed: which live nodes it converged, which were
already settled (skipped, not double-reported), and whether the run itself
was already cancelled (a convergence-only no-op rather than a fresh cancel).
Fields§
§run_was_already_cancelled: boolTrue when the run’s manifest was already Cancelled on entry, so no
run.status: cancelled event was appended. The call still scans and
converges any straggler nodes (an interrupted earlier cancel), so this
is a SUCCESS, not an error: “no-op: run was already cancelled,
converged N additional nodes”.
nodes_cancelled: Vec<NodeId>Nodes this cancel transaction ensured are terminally cancelled: live
nodes for which it synthesized and durably appended a terminal cancel
node.report (and folded it), plus any node whose cancel node.report a
prior interrupted cancel had already durably appended (matched by
(kind, idempotency_key)) and which this call converged by re-folding
that event rather than re-appending. Either way the node carries a
terminal cancel in the source-of-truth log and its projection is folded
(or, for a still-missing projection, will fold on rebuild — see the
module docs); none is double-reported against a node that was already
terminal on entry.
nodes_already_terminal: Vec<NodeId>Nodes whose status was already terminal on entry and so were skipped — never double-reported as freshly cancelled.
Trait Implementations§
Source§impl Clone for CancelOutcome
impl Clone for CancelOutcome
Source§fn clone(&self) -> CancelOutcome
fn clone(&self) -> CancelOutcome
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more