qdrant_client/builders/
hnsw_config_diff_builder.rs1use crate::qdrant::*;
2
3pub struct HnswConfigDiffBuilder {
4 pub(crate) m: Option<Option<u64>>,
7 pub(crate) ef_construct: Option<Option<u64>>,
10 pub(crate) full_scan_threshold: Option<Option<u64>>,
16 pub(crate) max_indexing_threads: Option<Option<u64>>,
22 pub(crate) on_disk: Option<Option<bool>>,
25 pub(crate) payload_m: Option<Option<u64>>,
28}
29#[allow(clippy::all)]
30#[allow(clippy::derive_partial_eq_without_eq)]
31impl HnswConfigDiffBuilder {
32 #[allow(unused_mut)]
35 pub fn m(self, value: u64) -> Self {
36 let mut new = self;
37 new.m = Option::Some(Option::Some(value));
38 new
39 }
40 #[allow(unused_mut)]
43 pub fn ef_construct(self, value: u64) -> Self {
44 let mut new = self;
45 new.ef_construct = Option::Some(Option::Some(value));
46 new
47 }
48 #[allow(unused_mut)]
54 pub fn full_scan_threshold(self, value: u64) -> Self {
55 let mut new = self;
56 new.full_scan_threshold = Option::Some(Option::Some(value));
57 new
58 }
59 #[allow(unused_mut)]
65 pub fn max_indexing_threads(self, value: u64) -> Self {
66 let mut new = self;
67 new.max_indexing_threads = Option::Some(Option::Some(value));
68 new
69 }
70 #[allow(unused_mut)]
73 pub fn on_disk(self, value: bool) -> Self {
74 let mut new = self;
75 new.on_disk = Option::Some(Option::Some(value));
76 new
77 }
78 #[allow(unused_mut)]
81 pub fn payload_m(self, value: u64) -> Self {
82 let mut new = self;
83 new.payload_m = Option::Some(Option::Some(value));
84 new
85 }
86
87 fn build_inner(self) -> Result<HnswConfigDiff, std::convert::Infallible> {
88 Ok(HnswConfigDiff {
89 m: match self.m {
90 Some(value) => value,
91 None => core::default::Default::default(),
92 },
93 ef_construct: match self.ef_construct {
94 Some(value) => value,
95 None => core::default::Default::default(),
96 },
97 full_scan_threshold: match self.full_scan_threshold {
98 Some(value) => value,
99 None => core::default::Default::default(),
100 },
101 max_indexing_threads: match self.max_indexing_threads {
102 Some(value) => value,
103 None => core::default::Default::default(),
104 },
105 on_disk: match self.on_disk {
106 Some(value) => value,
107 None => core::default::Default::default(),
108 },
109 payload_m: match self.payload_m {
110 Some(value) => value,
111 None => core::default::Default::default(),
112 },
113 })
114 }
115 fn create_empty() -> Self {
117 Self {
118 m: core::default::Default::default(),
119 ef_construct: core::default::Default::default(),
120 full_scan_threshold: core::default::Default::default(),
121 max_indexing_threads: core::default::Default::default(),
122 on_disk: core::default::Default::default(),
123 payload_m: core::default::Default::default(),
124 }
125 }
126}
127
128impl From<HnswConfigDiffBuilder> for HnswConfigDiff {
129 fn from(value: HnswConfigDiffBuilder) -> Self {
130 value.build_inner().unwrap_or_else(|_| {
131 panic!(
132 "Failed to convert {0} to {1}",
133 "HnswConfigDiffBuilder", "HnswConfigDiff"
134 )
135 })
136 }
137}
138
139impl HnswConfigDiffBuilder {
140 pub fn build(self) -> HnswConfigDiff {
142 self.build_inner().unwrap_or_else(|_| {
143 panic!(
144 "Failed to build {0} into {1}",
145 "HnswConfigDiffBuilder", "HnswConfigDiff"
146 )
147 })
148 }
149}
150
151impl Default for HnswConfigDiffBuilder {
152 fn default() -> Self {
153 Self::create_empty()
154 }
155}