pub trait Hypergraph<'a> {
type Node: Vertex;
type Edge: Hyperedge;
// Required methods
fn new() -> Self;
fn nodes(&'a self) -> impl Iterator<Item = &'a Self::Node>;
fn hyperedges(&'a self) -> impl Iterator<Item = &'a Self::Edge>;
fn get_node_by_id(&'a self, id: usize) -> Option<&'a Self::Node>;
fn add_node(&mut self, node: Self::Node);
fn add_hyperedge(&mut self, edge: Self::Edge);
// Provided methods
fn get_hyperedges_vector(
&'a self,
) -> impl Iterator<Item = Vec<&'a Self::Node>> { ... }
fn get_hyperedges_vector_with_edge(
&'a self,
) -> impl Iterator<Item = (&'a Self::Edge, Vec<&'a Self::Node>)> { ... }
}
Required Associated Types§
Required Methods§
fn new() -> Self
fn nodes(&'a self) -> impl Iterator<Item = &'a Self::Node>
fn hyperedges(&'a self) -> impl Iterator<Item = &'a Self::Edge>
fn get_node_by_id(&'a self, id: usize) -> Option<&'a Self::Node>
fn add_node(&mut self, node: Self::Node)
fn add_hyperedge(&mut self, edge: Self::Edge)
Provided Methods§
fn get_hyperedges_vector(&'a self) -> impl Iterator<Item = Vec<&'a Self::Node>>
fn get_hyperedges_vector_with_edge( &'a self, ) -> impl Iterator<Item = (&'a Self::Edge, Vec<&'a Self::Node>)>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.