pub trait AsyncGraphEdgeParams {
    type ParamSet: Set;
    fn network(&self) -> &BooleanNetwork;
fn empty_params(&self) -> &Self::ParamSet;
fn unit_params(&self) -> &Self::ParamSet;
fn edge_params(
        &self,
        state: IdState,
        variable: VariableId
    ) -> Self::ParamSet;
fn make_witness(&self, params: &Self::ParamSet) -> BooleanNetwork; }
Expand description

Async graph edges implement the edge colouring (parametrisation) of a graph. Instances of this trait are used together with the AsyncGraph to produce a semantic coloured graph of a parametrised Boolean network.

See DefaultEdgeParams for default implementation of edge colours.

This trait is especially useful when constructing things like wrappers of existing graphs, which need to modify the behaviour of the graph. Another option are various custom parameter encoders, where we simply do not want to re-implement the whole graph trait front scratch.

Associated Types

Required methods

Create a new empty set of parameters.

Create a new full set of parameters.

Create parameters for the edge starting in the given state, flipping the given variable.

Construct a witness network for the given set of parameters.

TODO: It is not really essential in this trait. Think of a way to move it elsewhere.

Implementors