Skip to main content

flow_utils/clustering/
mod.rs

1//! Clustering algorithms module
2//!
3//! Provides K-means, DBSCAN, and Gaussian Mixture Model clustering.
4
5mod 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/// Error type for clustering operations
16#[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>;