Trait Simulation

Source
pub trait Simulation<'a> {
    type Node: 'a;

    // Required methods
    fn get_simulation(
        &'a self,
    ) -> HashMap<&'a Self::Node, HashSet<&'a Self::Node>>;
    fn get_simulation_inter(
        &'a self,
        other: &'a Self,
    ) -> HashMap<&'a Self::Node, HashSet<&'a Self::Node>>;
    fn get_simulation_native(
        &'a self,
        other: &'a Self,
    ) -> HashMap<&'a Self::Node, HashSet<&'a Self::Node>>;
    fn get_simulation_of_node_edge(
        &'a self,
        other: &'a Self,
    ) -> HashMap<&'a Self::Node, HashSet<&'a Self::Node>>;
    fn get_simulation_of_edge(
        &'a self,
        other: &'a Self,
    ) -> HashMap<&'a Self::Node, HashSet<&'a Self::Node>>;
    fn has_simulation(
        sim: HashMap<&'a Self::Node, HashSet<&'a Self::Node>>,
    ) -> bool;
}

Required Associated Types§

Source

type Node: 'a

Required Methods§

Source

fn get_simulation(&'a self) -> HashMap<&'a Self::Node, HashSet<&'a Self::Node>>

Source

fn get_simulation_inter( &'a self, other: &'a Self, ) -> HashMap<&'a Self::Node, HashSet<&'a Self::Node>>

Source

fn get_simulation_native( &'a self, other: &'a Self, ) -> HashMap<&'a Self::Node, HashSet<&'a Self::Node>>

Source

fn get_simulation_of_node_edge( &'a self, other: &'a Self, ) -> HashMap<&'a Self::Node, HashSet<&'a Self::Node>>

Source

fn get_simulation_of_edge( &'a self, other: &'a Self, ) -> HashMap<&'a Self::Node, HashSet<&'a Self::Node>>

Source

fn has_simulation(sim: HashMap<&'a Self::Node, HashSet<&'a Self::Node>>) -> bool

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.

Implementors§

Source§

impl<'a, 'b, T> Simulation<'a> for T
where T: Graph<'a> + Adjacency<'a> + AdjacencyInv<'a> + Labeled<'a> + Directed + LabeledAdjacency<'a>, T::Node: 'a, T::Edge: 'a, 'b: 'a,

Source§

type Node = <T as Graph<'a>>::Node