qdrant_client/builders/
replicate_shard_builder.rs

1use crate::qdrant::*;
2
3#[derive(Clone)]
4pub struct ReplicateShardBuilder {
5    /// Local shard id
6    pub(crate) shard_id: Option<u32>,
7    pub(crate) to_shard_id: Option<Option<u32>>,
8    pub(crate) from_peer_id: Option<u64>,
9    pub(crate) to_peer_id: Option<u64>,
10    pub(crate) method: Option<Option<i32>>,
11}
12
13impl ReplicateShardBuilder {
14    /// Local shard id
15    #[allow(unused_mut)]
16    pub fn shard_id(self, value: u32) -> Self {
17        let mut new = self;
18        new.shard_id = Option::Some(value);
19        new
20    }
21    #[allow(unused_mut)]
22    pub fn to_shard_id(self, value: u32) -> Self {
23        let mut new = self;
24        new.to_shard_id = Option::Some(Option::Some(value));
25        new
26    }
27    #[allow(unused_mut)]
28    pub fn from_peer_id(self, value: u64) -> Self {
29        let mut new = self;
30        new.from_peer_id = Option::Some(value);
31        new
32    }
33    #[allow(unused_mut)]
34    pub fn to_peer_id(self, value: u64) -> Self {
35        let mut new = self;
36        new.to_peer_id = Option::Some(value);
37        new
38    }
39    #[allow(unused_mut)]
40    pub fn method<VALUE: core::convert::Into<i32>>(self, value: VALUE) -> Self {
41        let mut new = self;
42        new.method = Option::Some(Option::Some(value.into()));
43        new
44    }
45
46    fn build_inner(self) -> Result<ReplicateShard, ReplicateShardBuilderError> {
47        Ok(ReplicateShard {
48            shard_id: match self.shard_id {
49                Some(value) => value,
50                None => {
51                    return Result::Err(core::convert::Into::into(
52                        ::derive_builder::UninitializedFieldError::from("shard_id"),
53                    ));
54                }
55            },
56            to_shard_id: self.to_shard_id.unwrap_or_default(),
57            from_peer_id: match self.from_peer_id {
58                Some(value) => value,
59                None => {
60                    return Result::Err(core::convert::Into::into(
61                        ::derive_builder::UninitializedFieldError::from("from_peer_id"),
62                    ));
63                }
64            },
65            to_peer_id: match self.to_peer_id {
66                Some(value) => value,
67                None => {
68                    return Result::Err(core::convert::Into::into(
69                        ::derive_builder::UninitializedFieldError::from("to_peer_id"),
70                    ));
71                }
72            },
73            method: self.method.unwrap_or_default(),
74        })
75    }
76    /// Create an empty builder, with all fields set to `None` or `PhantomData`.
77    fn create_empty() -> Self {
78        Self {
79            shard_id: core::default::Default::default(),
80            to_shard_id: core::default::Default::default(),
81            from_peer_id: core::default::Default::default(),
82            to_peer_id: core::default::Default::default(),
83            method: core::default::Default::default(),
84        }
85    }
86}
87
88impl From<ReplicateShardBuilder> for ReplicateShard {
89    fn from(value: ReplicateShardBuilder) -> Self {
90        value.build_inner().unwrap_or_else(|_| {
91            panic!(
92                "Failed to convert {0} to {1}",
93                "ReplicateShardBuilder", "ReplicateShard"
94            )
95        })
96    }
97}
98
99impl ReplicateShardBuilder {
100    /// Builds the desired type. Can often be omitted.
101    pub fn build(self) -> ReplicateShard {
102        self.build_inner().unwrap_or_else(|_| {
103            panic!(
104                "Failed to build {0} into {1}",
105                "ReplicateShardBuilder", "ReplicateShard"
106            )
107        })
108    }
109}
110
111impl ReplicateShardBuilder {
112    pub(crate) fn empty() -> Self {
113        Self::create_empty()
114    }
115}
116
117///Error type for ReplicateShardBuilder
118#[non_exhaustive]
119#[derive(Debug)]
120pub enum ReplicateShardBuilderError {
121    /// Uninitialized field
122    UninitializedField(&'static str),
123    /// Custom validation error
124    ValidationError(String),
125}
126impl From<derive_builder::UninitializedFieldError> for ReplicateShardBuilderError {
127    fn from(error: derive_builder::UninitializedFieldError) -> Self {
128        Self::UninitializedField(error.field_name())
129    }
130}
131impl From<String> for ReplicateShardBuilderError {
132    fn from(error: String) -> Self {
133        Self::ValidationError(error)
134    }
135}
136impl std::fmt::Display for ReplicateShardBuilderError {
137    fn fmt(&self, f: &mut std::fmt::Formatter) -> ::derive_builder::export::core::fmt::Result {
138        match self {
139            Self::UninitializedField(field) => {
140                write!(f, "`{field}` must be initialized")
141            }
142            Self::ValidationError(error) => write!(f, "{error}"),
143        }
144    }
145}
146impl std::error::Error for ReplicateShardBuilderError {}