use crate::segment::types::{ExtendedPointId, WithPayloadInterface, WithVector};
use crate::edge::requests::retrieve::RetrieveRequest;
#[derive(Clone, Debug)]
pub struct RetrieveRequestBuilder {
point_ids: Vec<ExtendedPointId>,
with_payload: Option<WithPayloadInterface>,
with_vector: Option<WithVector>,
}
impl RetrieveRequestBuilder {
pub fn new(point_ids: Vec<ExtendedPointId>) -> Self {
let RetrieveRequest {
point_ids,
with_payload,
with_vector,
} = RetrieveRequest::new(point_ids);
Self {
point_ids,
with_payload,
with_vector,
}
}
pub fn with_payload(mut self, with_payload: WithPayloadInterface) -> Self {
self.with_payload = Some(with_payload);
self
}
pub fn with_vector(mut self, with_vector: WithVector) -> Self {
self.with_vector = Some(with_vector);
self
}
pub fn build(self) -> RetrieveRequest {
let Self {
point_ids,
with_payload,
with_vector,
} = self;
RetrieveRequest {
point_ids,
with_payload,
with_vector,
}
}
}