qdrant_client/builders/
replicate_shard_builder.rs1use crate::qdrant::*;
2
3#[derive(Clone)]
4pub struct ReplicateShardBuilder {
5 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 #[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 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 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#[non_exhaustive]
119#[derive(Debug)]
120pub enum ReplicateShardBuilderError {
121 UninitializedField(&'static str),
123 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 {}