pub struct BootPlan {
pub stages: Vec<Vec<String>>,
pub unresolved: Vec<Unresolved>,
pub cycles: Vec<Vec<String>>,
pub knots: Vec<BTreeSet<String>>,
}Expand description
The order to start a flock in, and what was wrong with the graph.
Fields§
§stages: Vec<Vec<String>>Stages in start order. Every stage is non-empty and its names are sorted, so one flock always plans the same way.
unresolved: Vec<Unresolved>Edges dropped because nothing answers to the name.
cycles: Vec<Vec<String>>One cycle for every knot in the graph, as a path with the first name
not repeated at the end. render_cycle closes it for display.
Several cycles can run through the same knot; the one named here is
a representative, and breaking it is what an operator does about it.
knots: Vec<BTreeSet<String>>Every member of each knot, index-aligned with BootPlan::cycles.
The representative path names only the nodes one cycle runs through, so a knot of three reached by two edges leaves one of them off it. A caller asking whether a name is stuck asks this; a caller printing what to break prints the path.
Trait Implementations§
impl Eq for BootPlan
impl StructuralPartialEq for BootPlan
Auto Trait Implementations§
impl Freeze for BootPlan
impl RefUnwindSafe for BootPlan
impl Send for BootPlan
impl Sync for BootPlan
impl Unpin for BootPlan
impl UnsafeUnpin for BootPlan
impl UnwindSafe for BootPlan
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.