hugr_core/hugr/views/
nodes_iter.rs1use crate::{HugrView, core::HugrNode, hugr::views::SiblingSubgraph};
2
3pub trait NodesIter {
5 type Node;
7
8 fn nodes(&self) -> impl Iterator<Item = Self::Node> + '_;
10}
11
12impl<H: HugrView> NodesIter for H {
13 type Node = H::Node;
14
15 fn nodes(&self) -> impl Iterator<Item = Self::Node> + '_ {
16 self.nodes()
17 }
18}
19
20impl<N: HugrNode> NodesIter for SiblingSubgraph<N> {
21 type Node = N;
22
23 fn nodes(&self) -> impl Iterator<Item = Self::Node> + '_ {
24 self.nodes().iter().copied()
25 }
26}