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
fn network(&self) -> &BooleanNetwork
fn empty_params(&self) -> &Self::ParamSet
fn empty_params(&self) -> &Self::ParamSet
Create a new empty set of parameters.
fn unit_params(&self) -> &Self::ParamSet
fn unit_params(&self) -> &Self::ParamSet
Create a new full set of parameters.
fn edge_params(&self, state: IdState, variable: VariableId) -> Self::ParamSet
fn edge_params(&self, state: IdState, variable: VariableId) -> Self::ParamSet
Create parameters for the edge starting in the given state
,
flipping the given variable
.
fn make_witness(&self, params: &Self::ParamSet) -> BooleanNetwork
fn make_witness(&self, params: &Self::ParamSet) -> BooleanNetwork
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.