use std::collections::HashMap;
use super::frontier_model_error::FrontierModelError;
use crate::{
algorithm::search::{Direction, SearchTreeBranch},
model::{
network::{Edge, VertexId},
state::{StateModel, StateVariable},
},
};
pub trait FrontierModel: Send + Sync {
fn valid_frontier(
&self,
edge: &Edge,
state: &[StateVariable],
tree: &HashMap<VertexId, SearchTreeBranch>,
direction: &Direction,
state_model: &StateModel,
) -> Result<bool, FrontierModelError>;
fn valid_edge(&self, edge: &Edge) -> Result<bool, FrontierModelError>;
}