Skip to main content

fmi_sim/sim/fmi3/
me.rs

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