use std::fmt;
pub mod cosine_similarity;
pub mod inner_product;
pub mod l2_denorm;
pub mod l2_norm;
#[derive(Debug, Default, Clone, PartialEq, Eq, Hash)]
pub enum ApproxOptions {
#[default]
Exact,
Approximate,
}
impl ApproxOptions {
pub fn is_exact(&self) -> bool {
matches!(self, Self::Exact)
}
pub fn is_approx(&self) -> bool {
matches!(self, Self::Approximate)
}
}
impl fmt::Display for ApproxOptions {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::Exact => write!(f, "Exact"),
Self::Approximate => write!(f, "Approximate"),
}
}
}