use super::access_model_error::AccessModelError;
use crate::model::{
property::{edge::Edge, vertex::Vertex},
state::{state_feature::StateFeature, state_model::StateModel},
traversal::state::state_variable::StateVar,
};
pub trait AccessModel: Send + Sync {
fn state_features(&self) -> Vec<(String, StateFeature)>;
fn access_edge(
&self,
traversal: (&Vertex, &Edge, &Vertex, &Edge, &Vertex),
state: &mut Vec<StateVar>,
state_model: &StateModel,
) -> Result<(), AccessModelError>;
}