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

@ -209,19 +209,15 @@ impl graph::StartNode for CoverageGraph {
}
impl graph::Successors for CoverageGraph {
type Successors<'g> = std::iter::Cloned<std::slice::Iter<'g, BasicCoverageBlock>>;
#[inline]
fn successors(&self, node: Self::Node) -> Self::Successors<'_> {
fn successors(&self, node: Self::Node) -> impl Iterator<Item = Self::Node> {
self.successors[node].iter().cloned()
}
}
impl graph::Predecessors for CoverageGraph {
type Predecessors<'g> = std::iter::Copied<std::slice::Iter<'g, BasicCoverageBlock>>;
#[inline]
fn predecessors(&self, node: Self::Node) -> Self::Predecessors<'_> {
fn predecessors(&self, node: Self::Node) -> impl Iterator<Item = Self::Node> {
self.predecessors[node].iter().copied()
}
}