Trait paralegal_spdg::IntoIterGlobalNodes
source · pub trait IntoIterGlobalNodes: Sized + Copy {
type Iter: Iterator<Item = Node>;
// Required methods
fn iter_nodes(self) -> Self::Iter;
fn controller_id(self) -> Endpoint;
// Provided methods
fn iter_global_nodes(self) -> GlobalNodeIter<Self> ⓘ { ... }
fn extended(self, other: impl IntoIterGlobalNodes) -> Option<NodeCluster> { ... }
fn to_local_cluster(self) -> NodeCluster { ... }
}
Expand description
This lets us be agnostic whether a primitive (such as flows_to
) is called
with a GlobalNode
or &NodeCluster
.
Note that while GlobalNode
implements this trait NodeCluster
does
not do so directly, but it’s reference &NodeCluster
does.
Required Associated Types§
sourcetype Iter: Iterator<Item = Node>
type Iter: Iterator<Item = Node>
The iterator returned by Self::iter_nodes
Required Methods§
sourcefn iter_nodes(self) -> Self::Iter
fn iter_nodes(self) -> Self::Iter
iterate over the local nodes
sourcefn controller_id(self) -> Endpoint
fn controller_id(self) -> Endpoint
The controller id all of these nodes are located in.
Provided Methods§
sourcefn iter_global_nodes(self) -> GlobalNodeIter<Self> ⓘ
fn iter_global_nodes(self) -> GlobalNodeIter<Self> ⓘ
Iterate all nodes as globally identified one’s.
The invariant of this iterator is that all controller_id()
s of the
nodes in the iterator is the same as self.controller_id()
.
sourcefn extended(self, other: impl IntoIterGlobalNodes) -> Option<NodeCluster>
fn extended(self, other: impl IntoIterGlobalNodes) -> Option<NodeCluster>
A convenience method for gathering multiple node(cluster)s together.
Returns None
if the controller id’s don’t match or both iterators are empty.
sourcefn to_local_cluster(self) -> NodeCluster
fn to_local_cluster(self) -> NodeCluster
Collect the iterator into a cluster