use crate::{HugrView, core::HugrNode, hugr::views::SiblingSubgraph};
pub trait NodesIter {
type Node;
fn nodes(&self) -> impl Iterator<Item = Self::Node> + '_;
}
impl<H: HugrView> NodesIter for H {
type Node = H::Node;
fn nodes(&self) -> impl Iterator<Item = Self::Node> + '_ {
self.nodes()
}
}
impl<N: HugrNode> NodesIter for SiblingSubgraph<N> {
type Node = N;
fn nodes(&self) -> impl Iterator<Item = Self::Node> + '_ {
self.nodes().iter().copied()
}
}