1use fmi::fmi3::{Fmi3Model, import::Fmi3Import, instance::InstanceME};
2
3use crate::{
4    Error,
5    sim::{InputState, RecorderState, SimState, SimStateTrait, params::SimParams},
6};
7
8impl<'a> SimStateTrait<'a, InstanceME<'a>, Fmi3Import> for SimState<InstanceME<'a>> {
9    fn new(
10        import: &'a Fmi3Import,
11        sim_params: SimParams,
12        input_state: InputState<InstanceME<'a>>,
13        recorder_state: RecorderState<InstanceME<'a>>,
14    ) -> Result<Self, Error> {
15        let inst = import.instantiate_me("inst1", true, true)?;
16        Ok(Self {
17            sim_params,
18            input_state,
19            recorder_state,
20            inst,
21            next_event_time: None,
22        })
23    }
24}