trait Process {
    // Required methods
    fn step(
        &mut self,
        scheduler: &mut Scheduler,
        graph: &SymbolicAsyncGraph,
    ) -> bool;
    fn weight(&self) -> usize;
    fn discard_states(&mut self, set: &GraphColoredVertices);
}
Expand description

(internal) A process trait is a unit of work that is managed by a Scheduler. Process has a weight that approximates how symbolically hard is to work with its intermediate representation.

Required Methods§

source

fn step( &mut self, scheduler: &mut Scheduler, graph: &SymbolicAsyncGraph, ) -> bool

Perform one step in the process. This can perform multiple symbolic operations, but should be fairly simple (i.e. does not need interrupting).

Returns true if the process cannot perform more steps.

source

fn weight(&self) -> usize

Approximate symbolic complexity of the process.

source

fn discard_states(&mut self, set: &GraphColoredVertices)

Mark the given set of states as eliminated - i.e. they can be disregarded by this process.

Implementors§