1#![warn(missing_docs)]
43
44pub mod anomaly;
45pub mod clustering;
46pub mod ensemble;
47pub mod explainability;
48pub mod federated;
49pub mod healthcare;
50pub mod messages;
51pub mod nlp;
52pub mod regression;
53pub mod ring_messages;
54pub mod streaming;
55pub mod types;
56
57pub mod prelude {
59 pub use crate::anomaly::*;
60 pub use crate::clustering::*;
61 pub use crate::ensemble::*;
62 pub use crate::explainability::*;
63 pub use crate::federated::*;
64 pub use crate::healthcare::*;
65 pub use crate::messages::*;
66 pub use crate::nlp::*;
67 pub use crate::regression::*;
68 pub use crate::ring_messages::*;
69 pub use crate::streaming::*;
70 pub use crate::types::*;
71}
72
73pub fn register_all(
75 registry: &rustkernel_core::registry::KernelRegistry,
76) -> rustkernel_core::error::Result<()> {
77 tracing::info!("Registering statistical ML kernels");
78
79 registry.register_batch_typed(clustering::KMeans::new)?;
81 registry.register_batch_typed(clustering::DBSCAN::new)?;
82 registry.register_batch_typed(clustering::HierarchicalClustering::new)?;
83
84 registry.register_batch_metadata_from(anomaly::IsolationForest::new)?;
86 registry.register_batch_metadata_from(anomaly::LocalOutlierFactor::new)?;
87
88 registry.register_batch_metadata_from(streaming::StreamingIsolationForest::new)?;
90 registry.register_batch_metadata_from(streaming::AdaptiveThreshold::new)?;
91
92 registry.register_batch_metadata_from(ensemble::EnsembleVoting::new)?;
94
95 registry.register_batch_metadata_from(regression::LinearRegression::new)?;
97 registry.register_batch_metadata_from(regression::RidgeRegression::new)?;
98
99 registry.register_batch_metadata_from(explainability::SHAPValues::new)?;
101 registry.register_batch_metadata_from(explainability::FeatureImportance::new)?;
102
103 registry.register_batch_metadata_from(nlp::EmbeddingGeneration::new)?;
105 registry.register_batch_metadata_from(nlp::SemanticSimilarity::new)?;
106
107 registry.register_batch_metadata_from(federated::SecureAggregation::new)?;
109
110 registry.register_batch_metadata_from(healthcare::DrugInteractionPrediction::new)?;
112 registry.register_batch_metadata_from(healthcare::ClinicalPathwayConformance::new)?;
113
114 tracing::info!("Registered 17 statistical ML kernels");
115 Ok(())
116}
117
118#[cfg(test)]
119mod tests {
120 use super::*;
121 use rustkernel_core::registry::KernelRegistry;
122
123 #[test]
124 fn test_register_all() {
125 let registry = KernelRegistry::new();
126 register_all(®istry).expect("Failed to register ML kernels");
127 assert_eq!(registry.total_count(), 17);
128 }
129}