chronix_analytics/forecast/
traits.rs1use crate::forecast::error::ForecastError;
4use crate::forecast::result::{ForecastResult, ModelParams, ModelType};
5
6pub trait ForecastModel: Send + Sync {
11 fn fit(&mut self, timestamps: &[i64], values: &[f64]) -> Result<(), ForecastError>;
13
14 fn predict(&self, horizon: usize) -> Result<ForecastResult, ForecastError>;
16
17 fn update(&mut self, timestamp: i64, value: f64) -> Result<(), ForecastError>;
19
20 fn model_type(&self) -> ModelType;
22
23 fn params(&self) -> &ModelParams;
25}