use crate::segment::types::{Filter, VectorNameBuf};
use crate::edge::requests::matrix::SearchMatrixRequest;
#[derive(Clone, Debug)]
pub struct SearchMatrixRequestBuilder {
sample_size: usize,
limit_per_sample: usize,
filter: Option<Filter>,
using: VectorNameBuf,
}
impl SearchMatrixRequestBuilder {
pub fn new(sample_size: usize, limit_per_sample: usize, using: VectorNameBuf) -> Self {
let SearchMatrixRequest {
sample_size,
limit_per_sample,
filter,
using,
} = SearchMatrixRequest::new(sample_size, limit_per_sample, using);
Self {
sample_size,
limit_per_sample,
filter,
using,
}
}
pub fn filter(mut self, filter: Filter) -> Self {
self.filter = Some(filter);
self
}
pub fn build(self) -> SearchMatrixRequest {
let Self {
sample_size,
limit_per_sample,
filter,
using,
} = self;
SearchMatrixRequest {
sample_size,
limit_per_sample,
filter,
using,
}
}
}