Use RPITIT for Successors and Predecessors traits

Now with RPITIT instead of GAT!
This commit is contained in:
Maybe Waffle
2024-04-15 13:33:08 +00:00
parent e8d2221e3b
commit 435db9b9bd
8 changed files with 14 additions and 46 deletions

View File

@@ -25,19 +25,11 @@ pub trait StartNode: DirectedGraph {
}
pub trait Successors: DirectedGraph {
type Successors<'g>: Iterator<Item = Self::Node>
where
Self: 'g;
fn successors(&self, node: Self::Node) -> Self::Successors<'_>;
fn successors(&self, node: Self::Node) -> impl Iterator<Item = Self::Node>;
}
pub trait Predecessors: DirectedGraph {
type Predecessors<'g>: Iterator<Item = Self::Node>
where
Self: 'g;
fn predecessors(&self, node: Self::Node) -> Self::Predecessors<'_>;
fn predecessors(&self, node: Self::Node) -> impl Iterator<Item = Self::Node>;
}
/// Alias for [`DirectedGraph`] + [`StartNode`] + [`Predecessors`] + [`Successors`].