pub mod imc_controller;
pub mod pfc;
pub mod smith_predictor;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ImcError {
InvalidParameter(&'static str),
NumericalError(&'static str),
}
impl core::fmt::Display for ImcError {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
ImcError::InvalidParameter(msg) => write!(f, "ImcError::InvalidParameter: {}", msg),
ImcError::NumericalError(msg) => write!(f, "ImcError::NumericalError: {}", msg),
}
}
}
pub use imc_controller::{ImcConfig, ImcController};
pub use pfc::{PfcConfig, PfcController, MAX_HORIZON};
pub use smith_predictor::{SmithPredictor, SmithPredictorConfig};