//! # entropyk-fmi
//!
//! FMI 2.0 Co-Simulation FMU export for the Entropyk thermodynamic engine.
//!
//! Builds as a `cdylib` (the `.dll`/`.so`/`.dylib` bundled inside the `.fmu`)
//! exposing the standard `fmi2*` C ABI. The host (TwinCAT, B&R, Siemens TIA,
//! Codesys, fmpy, OpenModelica, ...) drives the real-time scheduler; each
//! `fmi2DoStep` re-solves the steady refrigeration cycle at the current PLC
//! inputs (quasi-steady co-simulation).
//!
//! See [`embedded`] for how the model JSON is loaded and [`fmi2`] for the ABI.
//!
//! ## Quick dev test (no PLC)
//!
//! ```bash
//! cargo build -p entropyk-fmi
//! export ENTROPYK_FMU_MODEL=crates/cli/examples/chiller_aircooled_r134a.json
//! export ENTROPYK_FMU_IO=bindings/fmi/examples/chiller_aircooled_io.json
//! # then load the resulting .so/.dll in fmpy as a Co-Sim FMU
//! ```

#![allow(unsafe_code)]
// FMI 2.0 C ABI uses C naming conventions (fmi2Real, fmi2DoStep, ...).
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(clippy::missing_safety_doc)]
#![allow(clippy::const_is_empty)]

pub mod embedded;
pub mod fmi2;
pub mod io_map;
pub mod model;
