use crate::segment::data_types::modifier::Modifier;
use crate::segment::types::VectorStorageDatatype;
use crate::edge::config::vectors::EdgeSparseVectorParams;
#[derive(Debug, Clone, Default)]
pub struct EdgeSparseVectorParamsBuilder {
full_scan_threshold: Option<usize>,
on_disk: Option<bool>,
modifier: Option<Modifier>,
datatype: Option<VectorStorageDatatype>,
}
impl EdgeSparseVectorParamsBuilder {
pub fn new() -> Self {
Self::default()
}
pub fn full_scan_threshold(mut self, full_scan_threshold: usize) -> Self {
self.full_scan_threshold = Some(full_scan_threshold);
self
}
pub fn on_disk(mut self, on_disk: bool) -> Self {
self.on_disk = Some(on_disk);
self
}
pub fn modifier(mut self, modifier: Modifier) -> Self {
self.modifier = Some(modifier);
self
}
pub fn datatype(mut self, datatype: VectorStorageDatatype) -> Self {
self.datatype = Some(datatype);
self
}
pub fn build(self) -> EdgeSparseVectorParams {
let Self {
full_scan_threshold,
on_disk,
modifier,
datatype,
} = self;
EdgeSparseVectorParams {
full_scan_threshold,
on_disk,
modifier,
datatype,
}
}
}