use super::AccessModelError;
use crate::model::{
network::{Edge, Vertex},
state::{OutputFeature, StateModel, StateVariable},
};
pub trait AccessModel: Send + Sync {
fn state_features(&self) -> Vec<(String, OutputFeature)>;
fn access_edge(
&self,
traversal: (&Vertex, &Edge, &Vertex, &Edge, &Vertex),
state: &mut Vec<StateVariable>,
state_model: &StateModel,
) -> Result<(), AccessModelError>;
}