use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Clone, Copy, Debug, PartialEq, Default)]
pub enum Metric {
#[default]
Cosine,
Dot,
L2,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct Config {
pub max_connections: usize,
pub ef_construction: usize,
pub ef_search: usize,
pub metric: Metric,
pub seed: u64,
}
impl Default for Config {
fn default() -> Self {
Config {
max_connections: 16,
ef_construction: 200,
ef_search: 50,
metric: Metric::Cosine,
seed: 0x9E37_79B9_7F4A_7C15,
}
}
}