Skip to main content

HypergraphBasics

Trait HypergraphBasics 

Source
pub trait HypergraphBasics<'a>: GraphBasics<'a> {
    type DualType;

    // Required methods
    fn uniform(&'a self) -> bool;
    fn dual(&'a self) -> Self::DualType;
}

Required Associated Types§

Source

type DualType

Much like subgraphs, the dual of a hypergraph is not necessarily the same type as the original hypergraph. For example, the dual of a uniform hypergraph is not necessarily uniform.

Required Methods§

Source

fn uniform(&'a self) -> bool

Returns none if the hypergraph is not uniform, or the size of the hyperedges if it is. A hypergraph is uniform if all hyperedges have the same number of nodes. For example, a hypergraph with hyperedges of size 3 is 3-uniform.

Source

fn dual(&'a self) -> Self::DualType

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<'a, G1, G2> HypergraphBasics<'a> for G1
where G2: GraphBasics<'a, NodeIndex = G1::NodeIndex, EdgeIndex = G1::EdgeIndex, NodeRef = G1::NodeRef, EdgeRef = G1::NodeRef> + HypergraphBasics<'a> + 'a, G1: GraphWrapper<'a, Inner = G2>,

Source§

impl<'a, N, E, const ORDER: usize> HypergraphBasics<'a> for hypergraphx::core::undirected::uniform::UniformHypergraph<N, E, ORDER>
where E: Clone + Eq + Hash + 'a, N: Clone + Eq + Hash + 'a,

Source§

impl<'a, N, E, const ORDER: usize> HypergraphBasics<'a> for hypergraphx::core::directed::uniform::UniformHypergraph<N, E, ORDER>
where N: 'a + Clone + Eq + Hash, E: 'a + Clone + Eq + Hash,

Source§

impl<'a, N, E> HypergraphBasics<'a> for hypergraphx::core::undirected::Hypergraph<N, E>
where N: Clone + Eq + Hash + 'a, E: Clone + Eq + Hash + 'a,

Source§

impl<'a, N: 'a + Clone + Eq + Hash, E: 'a + Clone + Eq + Hash> HypergraphBasics<'a> for hypergraphx::core::directed::Hypergraph<N, E>