flow_utils/clustering/
mod.rs1mod kmeans;
6mod dbscan;
7mod gmm;
8
9pub use kmeans::{KMeans, KMeansConfig, KMeansResult};
10pub use dbscan::{Dbscan, DbscanConfig, DbscanResult};
11pub use gmm::{Gmm, GmmConfig, GmmResult};
12
13use thiserror::Error;
14
15#[derive(Error, Debug)]
17pub enum ClusteringError {
18 #[error("Empty data")]
19 EmptyData,
20 #[error("Insufficient data: need at least {min} points, got {actual}")]
21 InsufficientData { min: usize, actual: usize },
22 #[error("Invalid configuration: {0}")]
23 InvalidConfig(String),
24 #[error("Parameter validation failed: {0}")]
25 ValidationFailed(String),
26 #[error("Clustering failed: {0}")]
27 ClusteringFailed(String),
28}
29
30pub type ClusteringResult<T> = Result<T, ClusteringError>;