pub enum RuntimeInvariantViolation {
RuntimeCycle {
nodes: BTreeSet<TaskId>,
offending_edge: (TaskId, TaskId),
},
OutputOverlap {
first_task: TaskId,
second_task: TaskId,
shared_path: CanonicalPath,
},
}Expand description
A workspace-level invariant the scheduler detected at runtime.
Each variant carries enough information to produce a
diagnostic shape-equivalent to the static DAG-014 /
DAG-016 error it is the runtime analogue of: a cycle’s node
set and the offending edge; an overlap’s two task identities
and the shared path.
Variants§
RuntimeCycle
EXEC-019 runtime cycle: a length-≥2 cycle in the union
of hard, soft, and producer-matching edges, discovered
when a newly-materialised output added a runtime
producer-matching edge that closed the cycle.
Fields
OutputOverlap
EXEC-020 runtime output overlap: two tasks have both
materialised the same workspace-absolute path.
Trait Implementations§
Source§impl Clone for RuntimeInvariantViolation
impl Clone for RuntimeInvariantViolation
Source§fn clone(&self) -> RuntimeInvariantViolation
fn clone(&self) -> RuntimeInvariantViolation
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RuntimeInvariantViolation
impl Debug for RuntimeInvariantViolation
Source§impl PartialEq for RuntimeInvariantViolation
impl PartialEq for RuntimeInvariantViolation
Source§fn eq(&self, other: &RuntimeInvariantViolation) -> bool
fn eq(&self, other: &RuntimeInvariantViolation) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for RuntimeInvariantViolation
impl StructuralPartialEq for RuntimeInvariantViolation
Auto Trait Implementations§
impl Freeze for RuntimeInvariantViolation
impl RefUnwindSafe for RuntimeInvariantViolation
impl Send for RuntimeInvariantViolation
impl Sync for RuntimeInvariantViolation
impl Unpin for RuntimeInvariantViolation
impl UnsafeUnpin for RuntimeInvariantViolation
impl UnwindSafe for RuntimeInvariantViolation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more