pub struct DirectedGraph<NodeData> { /* private fields */ }Implementations§
Source§impl<NodeData> DirectedGraph<NodeData>
impl<NodeData> DirectedGraph<NodeData>
pub fn new() -> Self
pub fn add_node(&mut self, node_id: OperatorId, data: NodeData) -> OperatorId
pub fn add_edge(&mut self, edge: FlowEdge) -> FlowEdgeId
pub fn get_node(&self, node_id: &OperatorId) -> Option<&NodeData>
pub fn get_node_mut(&mut self, node_id: &OperatorId) -> Option<&mut NodeData>
pub fn node_count(&self) -> usize
pub fn edge_count(&self) -> usize
pub fn neighbors(&self, node_id: &OperatorId) -> Vec<OperatorId>
pub fn predecessors(&self, node_id: &OperatorId) -> Vec<OperatorId>
pub fn topological_sort(&self) -> Vec<OperatorId>
pub fn dfs_from(&self, start: &OperatorId) -> Vec<OperatorId>
pub fn nodes(&self) -> impl Iterator<Item = (&OperatorId, &NodeData)>
pub fn edges(&self) -> impl Iterator<Item = &FlowEdge>
pub fn is_empty(&self) -> bool
pub fn clear(&mut self)
Trait Implementations§
Source§impl<NodeData: Clone> Clone for DirectedGraph<NodeData>
impl<NodeData: Clone> Clone for DirectedGraph<NodeData>
Source§impl<NodeData: Debug> Debug for DirectedGraph<NodeData>
impl<NodeData: Debug> Debug for DirectedGraph<NodeData>
Source§impl<NodeData> Default for DirectedGraph<NodeData>
impl<NodeData> Default for DirectedGraph<NodeData>
Source§impl<NodeData: PartialEq> PartialEq for DirectedGraph<NodeData>
impl<NodeData: PartialEq> PartialEq for DirectedGraph<NodeData>
impl<NodeData: PartialEq> StructuralPartialEq for DirectedGraph<NodeData>
Auto Trait Implementations§
impl<NodeData> Freeze for DirectedGraph<NodeData>
impl<NodeData> RefUnwindSafe for DirectedGraph<NodeData>
impl<NodeData> Send for DirectedGraph<NodeData>
impl<NodeData> Sync for DirectedGraph<NodeData>
impl<NodeData> Unpin for DirectedGraph<NodeData>
impl<NodeData> UnsafeUnpin for DirectedGraph<NodeData>
impl<NodeData> UnwindSafe for DirectedGraph<NodeData>
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more