Skip to main content

qdrant_client/builders/
delete_shard_key_request_builder.rs

1use crate::qdrant::*;
2
3#[must_use]
4#[derive(Clone)]
5pub struct DeleteShardKeyRequestBuilder {
6    /// Name of the collection
7    pub(crate) collection_name: Option<String>,
8    /// Request to delete shard key
9    pub(crate) request: Option<Option<DeleteShardKey>>,
10    /// Wait timeout for operation commit in seconds, if not specified - default value will be supplied
11    pub(crate) timeout: Option<Option<u64>>,
12}
13
14impl DeleteShardKeyRequestBuilder {
15    /// Name of the collection
16    pub fn collection_name(self, value: String) -> Self {
17        let mut new = self;
18        new.collection_name = Option::Some(value);
19        new
20    }
21    /// Wait timeout for operation commit in seconds, if not specified - default value will be supplied
22    pub fn timeout(self, value: u64) -> Self {
23        let mut new = self;
24        new.timeout = Option::Some(Option::Some(value));
25        new
26    }
27
28    fn build_inner(self) -> Result<DeleteShardKeyRequest, DeleteShardKeyRequestBuilderError> {
29        Ok(DeleteShardKeyRequest {
30            collection_name: match self.collection_name {
31                Some(value) => value,
32                None => {
33                    return Result::Err(core::convert::Into::into(
34                        ::derive_builder::UninitializedFieldError::from("collection_name"),
35                    ));
36                }
37            },
38            request: self.request.unwrap_or_default(),
39            timeout: self.timeout.unwrap_or_default(),
40        })
41    }
42    /// Create an empty builder, with all fields set to `None` or `PhantomData`.
43    fn create_empty() -> Self {
44        Self {
45            collection_name: core::default::Default::default(),
46            request: core::default::Default::default(),
47            timeout: core::default::Default::default(),
48        }
49    }
50}
51
52impl From<DeleteShardKeyRequestBuilder> for DeleteShardKeyRequest {
53    fn from(value: DeleteShardKeyRequestBuilder) -> Self {
54        value.build_inner().unwrap_or_else(|_| {
55            panic!(
56                "Failed to convert {0} to {1}",
57                "DeleteShardKeyRequestBuilder", "DeleteShardKeyRequest"
58            )
59        })
60    }
61}
62
63impl DeleteShardKeyRequestBuilder {
64    /// Builds the desired type. Can often be omitted.
65    pub fn build(self) -> DeleteShardKeyRequest {
66        self.build_inner().unwrap_or_else(|_| {
67            panic!(
68                "Failed to build {0} into {1}",
69                "DeleteShardKeyRequestBuilder", "DeleteShardKeyRequest"
70            )
71        })
72    }
73}
74
75impl DeleteShardKeyRequestBuilder {
76    pub(crate) fn empty() -> Self {
77        Self::create_empty()
78    }
79}
80
81/// Error type for DeleteShardKeyRequestBuilder
82#[non_exhaustive]
83#[derive(Debug)]
84pub enum DeleteShardKeyRequestBuilderError {
85    /// Uninitialized field
86    UninitializedField(&'static str),
87    /// Custom validation error
88    ValidationError(String),
89}
90
91// Implementing the Display trait for better error messages
92impl std::fmt::Display for DeleteShardKeyRequestBuilderError {
93    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
94        match self {
95            Self::UninitializedField(field) => {
96                write!(f, "`{field}` must be initialized")
97            }
98            Self::ValidationError(error) => write!(f, "{error}"),
99        }
100    }
101}
102
103// Implementing the Error trait
104impl std::error::Error for DeleteShardKeyRequestBuilderError {}
105
106// Implementing From trait for conversion from UninitializedFieldError
107impl From<derive_builder::UninitializedFieldError> for DeleteShardKeyRequestBuilderError {
108    fn from(error: derive_builder::UninitializedFieldError) -> Self {
109        Self::UninitializedField(error.field_name())
110    }
111}
112
113// Implementing From trait for conversion from String
114impl From<String> for DeleteShardKeyRequestBuilderError {
115    fn from(error: String) -> Self {
116        Self::ValidationError(error)
117    }
118}