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