kacrab_protocol/generated/
update_raft_voter_request.rs1#![allow(
3 missing_docs,
4 clippy::all,
5 clippy::pedantic,
6 clippy::nursery,
7 clippy::arithmetic_side_effects,
8 reason = "Generated protocol modules mirror Kafka's schema shape and intentionally trade \
9 hand-written lint style for reproducible wire-code output."
10)]
11use bytes::{Bytes, BytesMut};
12
13use crate::*;
14
15#[derive(Debug, Clone, PartialEq)]
16pub struct UpdateRaftVoterRequestData {
17 pub cluster_id: Option<KafkaString>,
19 pub current_leader_epoch: i32,
21 pub voter_id: i32,
23 pub voter_directory_id: KafkaUuid,
25 pub listeners: Vec<Listener>,
27 pub k_raft_version_feature: KRaftVersionFeature,
29 pub _unknown_tagged_fields: Vec<RawTaggedField>,
30}
31impl Default for UpdateRaftVoterRequestData {
32 fn default() -> Self {
33 Self {
34 cluster_id: None,
35 current_leader_epoch: 0_i32,
36 voter_id: 0_i32,
37 voter_directory_id: KafkaUuid::ZERO,
38 listeners: Vec::new(),
39 k_raft_version_feature: KRaftVersionFeature::default(),
40 _unknown_tagged_fields: Vec::new(),
41 }
42 }
43}
44impl UpdateRaftVoterRequestData {
45 pub fn with_cluster_id(mut self, value: Option<KafkaString>) -> Self {
46 self.cluster_id = value;
47 self
48 }
49 pub fn with_current_leader_epoch(mut self, value: i32) -> Self {
50 self.current_leader_epoch = value;
51 self
52 }
53 pub fn with_voter_id(mut self, value: i32) -> Self {
54 self.voter_id = value;
55 self
56 }
57 pub fn with_voter_directory_id(mut self, value: KafkaUuid) -> Self {
58 self.voter_directory_id = value;
59 self
60 }
61 pub fn with_listeners(mut self, value: Vec<Listener>) -> Self {
62 self.listeners = value;
63 self
64 }
65 pub fn with_k_raft_version_feature(mut self, value: KRaftVersionFeature) -> Self {
66 self.k_raft_version_feature = value;
67 self
68 }
69 pub fn read(buf: &mut Bytes, version: i16) -> Result<Self> {
70 if version < 0 || version > 0 {
71 return Err(UnsupportedVersion::new(82, version).into());
72 }
73 let cluster_id;
74 let current_leader_epoch;
75 let voter_id;
76 let voter_directory_id;
77 let listeners;
78 let k_raft_version_feature;
79 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
80 cluster_id = read_compact_nullable_string(buf)?;
81 current_leader_epoch = read_i32(buf)?;
82 voter_id = read_i32(buf)?;
83 voter_directory_id = read_uuid(buf)?;
84 listeners = {
85 let len = read_compact_array_length(buf)?;
86 let mut arr = Vec::with_capacity(array_read_capacity(len, (buf).len()));
87 for _ in 0..len {
88 arr.push(Listener::read(buf, version)?);
89 }
90 arr
91 };
92 k_raft_version_feature = KRaftVersionFeature::read(buf, version)?;
93 let tagged_fields = read_tagged_fields(buf)?;
94 for field in &tagged_fields {
95 match field.tag {
96 _ => {
97 _unknown_tagged_fields.push(field.clone());
98 },
99 }
100 }
101 Ok(Self {
102 cluster_id,
103 current_leader_epoch,
104 voter_id,
105 voter_directory_id,
106 listeners,
107 k_raft_version_feature,
108 _unknown_tagged_fields,
109 })
110 }
111 pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
112 if version < 0 || version > 0 {
113 return Err(UnsupportedVersion::new(82, version).into());
114 }
115 write_compact_nullable_string(buf, self.cluster_id.as_ref())?;
116 write_i32(buf, self.current_leader_epoch);
117 write_i32(buf, self.voter_id);
118 write_uuid(buf, &self.voter_directory_id);
119 write_compact_array_length(buf, self.listeners.len() as i32);
120 for el in &self.listeners {
121 el.write(buf, version)?;
122 }
123 self.k_raft_version_feature.write(buf, version)?;
124 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
125 all_tags.sort_by_key(|f| f.tag);
126 write_tagged_fields(buf, &all_tags)?;
127 Ok(())
128 }
129 pub fn encoded_len(&self, version: i16) -> Result<usize> {
130 if version < 0 || version > 0 {
131 return Err(UnsupportedVersion::new(82, version).into());
132 }
133 let mut len: usize = 0;
134 len += compact_nullable_string_len(self.cluster_id.as_ref())?;
135 len += 4;
136 len += 4;
137 len += 16;
138 len += compact_array_length_len(self.listeners.len() as i32);
139 for el in &self.listeners {
140 len += el.encoded_len(version)?;
141 }
142 len += self.k_raft_version_feature.encoded_len(version)?;
143 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
144 all_tags.sort_by_key(|f| f.tag);
145 len += tagged_fields_len(&all_tags)?;
146 Ok(len)
147 }
148}
149#[derive(Debug, Clone, PartialEq)]
150pub struct Listener {
151 pub name: KafkaString,
153 pub host: KafkaString,
155 pub port: u16,
157 pub _unknown_tagged_fields: Vec<RawTaggedField>,
158}
159impl Default for Listener {
160 fn default() -> Self {
161 Self {
162 name: KafkaString::default(),
163 host: KafkaString::default(),
164 port: 0_u16,
165 _unknown_tagged_fields: Vec::new(),
166 }
167 }
168}
169impl Listener {
170 pub fn with_name(mut self, value: KafkaString) -> Self {
171 self.name = value;
172 self
173 }
174 pub fn with_host(mut self, value: KafkaString) -> Self {
175 self.host = value;
176 self
177 }
178 pub fn with_port(mut self, value: u16) -> Self {
179 self.port = value;
180 self
181 }
182 pub fn read(buf: &mut Bytes, _version: i16) -> Result<Self> {
183 let name;
184 let host;
185 let port;
186 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
187 name = read_compact_string(buf)?;
188 host = read_compact_string(buf)?;
189 port = read_u16(buf)?;
190 let tagged_fields = read_tagged_fields(buf)?;
191 for field in &tagged_fields {
192 match field.tag {
193 _ => {
194 _unknown_tagged_fields.push(field.clone());
195 },
196 }
197 }
198 Ok(Self {
199 name,
200 host,
201 port,
202 _unknown_tagged_fields,
203 })
204 }
205 pub fn write(&self, buf: &mut BytesMut, _version: i16) -> Result<()> {
206 write_compact_string(buf, &self.name)?;
207 write_compact_string(buf, &self.host)?;
208 write_u16(buf, self.port);
209 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
210 all_tags.sort_by_key(|f| f.tag);
211 write_tagged_fields(buf, &all_tags)?;
212 Ok(())
213 }
214 pub fn encoded_len(&self, _version: i16) -> Result<usize> {
215 let mut len: usize = 0;
216 len += compact_string_len(&self.name)?;
217 len += compact_string_len(&self.host)?;
218 len += 2;
219 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
220 all_tags.sort_by_key(|f| f.tag);
221 len += tagged_fields_len(&all_tags)?;
222 Ok(len)
223 }
224}
225#[derive(Debug, Clone, PartialEq)]
226pub struct KRaftVersionFeature {
227 pub min_supported_version: i16,
229 pub max_supported_version: i16,
231 pub _unknown_tagged_fields: Vec<RawTaggedField>,
232}
233impl Default for KRaftVersionFeature {
234 fn default() -> Self {
235 Self {
236 min_supported_version: 0_i16,
237 max_supported_version: 0_i16,
238 _unknown_tagged_fields: Vec::new(),
239 }
240 }
241}
242impl KRaftVersionFeature {
243 pub fn with_min_supported_version(mut self, value: i16) -> Self {
244 self.min_supported_version = value;
245 self
246 }
247 pub fn with_max_supported_version(mut self, value: i16) -> Self {
248 self.max_supported_version = value;
249 self
250 }
251 pub fn read(buf: &mut Bytes, _version: i16) -> Result<Self> {
252 let min_supported_version;
253 let max_supported_version;
254 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
255 min_supported_version = read_i16(buf)?;
256 max_supported_version = read_i16(buf)?;
257 let tagged_fields = read_tagged_fields(buf)?;
258 for field in &tagged_fields {
259 match field.tag {
260 _ => {
261 _unknown_tagged_fields.push(field.clone());
262 },
263 }
264 }
265 Ok(Self {
266 min_supported_version,
267 max_supported_version,
268 _unknown_tagged_fields,
269 })
270 }
271 pub fn write(&self, buf: &mut BytesMut, _version: i16) -> Result<()> {
272 write_i16(buf, self.min_supported_version);
273 write_i16(buf, self.max_supported_version);
274 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
275 all_tags.sort_by_key(|f| f.tag);
276 write_tagged_fields(buf, &all_tags)?;
277 Ok(())
278 }
279 pub fn encoded_len(&self, _version: i16) -> Result<usize> {
280 let mut len: usize = 0;
281 len += 2;
282 len += 2;
283 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
284 all_tags.sort_by_key(|f| f.tag);
285 len += tagged_fields_len(&all_tags)?;
286 Ok(len)
287 }
288}