#![warn(missing_docs)]
pub mod decomposition;
pub mod detection;
pub mod forecasting;
pub mod messages;
pub mod ring_messages;
pub mod types;
pub mod volatility;
pub mod prelude {
pub use crate::decomposition::*;
pub use crate::detection::*;
pub use crate::forecasting::*;
pub use crate::messages::*;
pub use crate::ring_messages::*;
pub use crate::types::*;
pub use crate::volatility::*;
}
pub use decomposition::{SeasonalDecomposition, TrendExtraction};
pub use detection::{ChangePointDetection, TimeSeriesAnomalyDetection};
pub use forecasting::{ARIMAForecast, ProphetDecomposition};
pub use volatility::VolatilityAnalysis;
pub use types::{
ARIMAParams, ARIMAResult, AnomalyMethod, ChangePointMethod, ChangePointResult,
DecompositionResult, GARCHCoefficients, GARCHParams, ProphetResult, TimeSeries,
TimeSeriesAnomalyResult, TrendMethod, TrendResult, VolatilityResult,
};
pub fn register_all(
registry: &rustkernel_core::registry::KernelRegistry,
) -> rustkernel_core::error::Result<()> {
tracing::info!("Registering temporal analysis kernels");
registry.register_batch_typed(forecasting::ARIMAForecast::new)?;
registry.register_batch_typed(forecasting::ProphetDecomposition::new)?;
registry.register_batch_typed(detection::ChangePointDetection::new)?; registry.register_ring_metadata_from(detection::TimeSeriesAnomalyDetection::new)?;
registry.register_batch_typed(decomposition::SeasonalDecomposition::new)?;
registry.register_batch_typed(decomposition::TrendExtraction::new)?;
registry.register_ring_metadata_from(volatility::VolatilityAnalysis::new)?;
tracing::info!("Registered 7 temporal analysis kernels");
Ok(())
}
#[cfg(test)]
mod tests {
use super::*;
use rustkernel_core::registry::KernelRegistry;
#[test]
fn test_register_all() {
let registry = KernelRegistry::new();
register_all(®istry).expect("Failed to register temporal kernels");
assert_eq!(registry.total_count(), 7);
}
}