use thiserror::Error;
use crate::FloatNumber;
#[derive(Debug, PartialEq, Error)]
pub enum DbscanError<T>
where
T: FloatNumber,
{
#[error("The number of segments must be greater than zero")]
InvalidSegments,
#[error("The minimum number of pixels must be greater than zero")]
InvalidMinPixels,
#[error("Epsilon must be greater than zero and not NaN: {0}")]
InvalidEpsilon(T),
#[error("Expected pixels length {expected}, but got {actual}")]
UnexpectedLength { actual: usize, expected: usize },
}