qdrant_client/builders/
multi_vector_config_builder.rs1use crate::qdrant::*;
2
3#[must_use]
4#[derive(Clone)]
5pub struct MultiVectorConfigBuilder {
6 pub(crate) comparator: Option<i32>,
8}
9
10impl MultiVectorConfigBuilder {
11 pub fn comparator<VALUE: core::convert::Into<i32>>(self, value: VALUE) -> Self {
13 let mut new = self;
14 new.comparator = Option::Some(value.into());
15 new
16 }
17
18 fn build_inner(self) -> Result<MultiVectorConfig, MultiVectorConfigBuilderError> {
19 Ok(MultiVectorConfig {
20 comparator: self.comparator.unwrap_or_default(),
21 })
22 }
23 fn create_empty() -> Self {
25 Self {
26 comparator: core::default::Default::default(),
27 }
28 }
29}
30
31impl From<MultiVectorConfigBuilder> for MultiVectorConfig {
32 fn from(value: MultiVectorConfigBuilder) -> Self {
33 value.build_inner().unwrap_or_else(|_| {
34 panic!(
35 "Failed to convert {0} to {1}",
36 "MultiVectorConfigBuilder", "MultiVectorConfig"
37 )
38 })
39 }
40}
41
42impl MultiVectorConfigBuilder {
43 pub fn build(self) -> MultiVectorConfig {
45 self.build_inner().unwrap_or_else(|_| {
46 panic!(
47 "Failed to build {0} into {1}",
48 "MultiVectorConfigBuilder", "MultiVectorConfig"
49 )
50 })
51 }
52}
53
54impl MultiVectorConfigBuilder {
55 pub(crate) fn empty() -> Self {
56 Self::create_empty()
57 }
58}
59
60#[non_exhaustive]
62#[derive(Debug)]
63pub enum MultiVectorConfigBuilderError {
64 UninitializedField(&'static str),
66 ValidationError(String),
68}
69
70impl std::fmt::Display for MultiVectorConfigBuilderError {
72 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
73 match self {
74 Self::UninitializedField(field) => {
75 write!(f, "`{field}` must be initialized")
76 }
77 Self::ValidationError(error) => write!(f, "{error}"),
78 }
79 }
80}
81
82impl std::error::Error for MultiVectorConfigBuilderError {}
84
85impl From<derive_builder::UninitializedFieldError> for MultiVectorConfigBuilderError {
87 fn from(error: derive_builder::UninitializedFieldError) -> Self {
88 Self::UninitializedField(error.field_name())
89 }
90}
91
92impl From<String> for MultiVectorConfigBuilderError {
94 fn from(error: String) -> Self {
95 Self::ValidationError(error)
96 }
97}