use super::config::AbstractProcessConfiguration;
pub trait AbstractProcessMutablePersistentState<Conf : AbstractProcessConfiguration> {
fn get_initial_state(
context_and_param : &Conf::ContextAndParameterization,
initial_node : &Conf::DomainSpecificNode
) -> Self;
fn update_on_node_reached(
&mut self,
context_and_param : &Conf::ContextAndParameterization,
node : &Conf::DomainSpecificNode
);
fn update_on_next_steps_collected_reached(
&mut self,
context_and_param : &Conf::ContextAndParameterization,
node : &Conf::DomainSpecificNode,
steps : &[Conf::DomainSpecificStep]
);
fn update_on_filtered(
&mut self,
context_and_param : &Conf::ContextAndParameterization,
parent_node : &Conf::DomainSpecificNode,
filtration_result : &Conf::FiltrationResult
);
fn warrants_termination_of_the_process(
&self,
context_and_param : &Conf::ContextAndParameterization
) -> bool;
}