Trait SwhLabeledBackwardGraph

Source
pub trait SwhLabeledBackwardGraph: SwhBackwardGraph {
    type LabeledArcs<'arc>: IntoIterator<Item = UntypedEdgeLabel>
       where Self: 'arc;
    type LabeledPredecessors<'node>: IntoIterator<Item = (usize, Self::LabeledArcs<'node>)> + IntoFlattenedLabeledArcsIterator<UntypedEdgeLabel>
       where Self: 'node;

    // Required method
    fn untyped_labeled_predecessors(
        &self,
        node_id: NodeId,
    ) -> Self::LabeledPredecessors<'_>;

    // Provided method
    fn labeled_predecessors(
        &self,
        node_id: NodeId,
    ) -> impl Iterator<Item = (usize, impl Iterator<Item = EdgeLabel>)>
       where Self: SwhGraphWithProperties + Sized,
             <Self as SwhGraphWithProperties>::Maps: Maps { ... }
}

Required Associated Types§

Source

type LabeledArcs<'arc>: IntoIterator<Item = UntypedEdgeLabel> where Self: 'arc

Source

type LabeledPredecessors<'node>: IntoIterator<Item = (usize, Self::LabeledArcs<'node>)> + IntoFlattenedLabeledArcsIterator<UntypedEdgeLabel> where Self: 'node

Required Methods§

Source

fn untyped_labeled_predecessors( &self, node_id: NodeId, ) -> Self::LabeledPredecessors<'_>

Return an IntoIterator over the predecessors of a node along with a list of labels of each arc

Provided Methods§

Source

fn labeled_predecessors( &self, node_id: NodeId, ) -> impl Iterator<Item = (usize, impl Iterator<Item = EdgeLabel>)>

Return an IntoIterator over the predecessors of a node along with a list of labels of each arc

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<G: SwhLabeledBackwardGraph> SwhLabeledBackwardGraph for GraphSpy<G>

Source§

type LabeledArcs<'arc> = <G as SwhLabeledBackwardGraph>::LabeledArcs<'arc> where Self: 'arc

Source§

type LabeledPredecessors<'succ> = <G as SwhLabeledBackwardGraph>::LabeledPredecessors<'succ> where Self: 'succ

Source§

impl<G: SwhLabeledBackwardGraph, NodeFilter: Fn(usize) -> bool, ArcFilter: Fn(usize, usize) -> bool> SwhLabeledBackwardGraph for Subgraph<G, NodeFilter, ArcFilter>

Source§

type LabeledArcs<'arc> = <G as SwhLabeledBackwardGraph>::LabeledArcs<'arc> where Self: 'arc

Source§

type LabeledPredecessors<'node> = FilteredLabeledPredecessors<'node, <Subgraph<G, NodeFilter, ArcFilter> as SwhLabeledBackwardGraph>::LabeledArcs<'node>, <<G as SwhLabeledBackwardGraph>::LabeledPredecessors<'node> as IntoIterator>::IntoIter, NodeFilter, ArcFilter> where Self: 'node

Source§

impl<G: SwhLabeledForwardGraph> SwhLabeledBackwardGraph for Transposed<G>

Source§

type LabeledArcs<'arc> = <G as SwhLabeledForwardGraph>::LabeledArcs<'arc> where Self: 'arc

Source§

type LabeledPredecessors<'succ> = <G as SwhLabeledForwardGraph>::LabeledSuccessors<'succ> where Self: 'succ

Source§

impl<P, FG: UnderlyingGraph, BG: UnderlyingGraph> SwhLabeledBackwardGraph for SwhBidirectionalGraph<P, FG, BG>
where <BG as SequentialLabeling>::Label: Pair<Left = NodeId, Right: IntoIterator<Item: Borrow<u64>>>, for<'succ> <BG as RandomAccessLabeling>::Labels<'succ>: Iterator<Item = (usize, <<BG as SequentialLabeling>::Label as Pair>::Right)>,

Source§

type LabeledArcs<'arc> = LabeledArcIterator<<<<<BG as RandomAccessLabeling>::Labels<'arc> as Iterator>::Item as Pair>::Right as IntoIterator>::IntoIter> where Self: 'arc

Source§

type LabeledPredecessors<'succ> = LabeledSuccessorIterator<<BG as RandomAccessLabeling>::Labels<'succ>> where Self: 'succ

Source§

impl<T: Deref> SwhLabeledBackwardGraph for T

Source§

type LabeledArcs<'arc> = <<T as Deref>::Target as SwhLabeledBackwardGraph>::LabeledArcs<'arc> where Self: 'arc

Source§

type LabeledPredecessors<'succ> = <<T as Deref>::Target as SwhLabeledBackwardGraph>::LabeledPredecessors<'succ> where Self: 'succ