kacrab_protocol/generated/
read_share_group_state_response.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 ReadShareGroupStateResponseData {
17 pub results: Vec<ReadStateResult>,
19 pub _unknown_tagged_fields: Vec<RawTaggedField>,
20}
21impl Default for ReadShareGroupStateResponseData {
22 fn default() -> Self {
23 Self {
24 results: Vec::new(),
25 _unknown_tagged_fields: Vec::new(),
26 }
27 }
28}
29impl ReadShareGroupStateResponseData {
30 pub fn with_results(mut self, value: Vec<ReadStateResult>) -> Self {
31 self.results = value;
32 self
33 }
34 pub fn read(buf: &mut Bytes, version: i16) -> Result<Self> {
35 if version < 0 || version > 0 {
36 return Err(UnsupportedVersion::new(84, version).into());
37 }
38 let results;
39 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
40 results = {
41 let len = read_compact_array_length(buf)?;
42 let mut arr = Vec::with_capacity(array_read_capacity(len, (buf).len()));
43 for _ in 0..len {
44 arr.push(ReadStateResult::read(buf, version)?);
45 }
46 arr
47 };
48 let tagged_fields = read_tagged_fields(buf)?;
49 for field in &tagged_fields {
50 match field.tag {
51 _ => {
52 _unknown_tagged_fields.push(field.clone());
53 },
54 }
55 }
56 Ok(Self {
57 results,
58 _unknown_tagged_fields,
59 })
60 }
61 pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
62 if version < 0 || version > 0 {
63 return Err(UnsupportedVersion::new(84, version).into());
64 }
65 write_compact_array_length(buf, self.results.len() as i32);
66 for el in &self.results {
67 el.write(buf, version)?;
68 }
69 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
70 all_tags.sort_by_key(|f| f.tag);
71 write_tagged_fields(buf, &all_tags)?;
72 Ok(())
73 }
74 pub fn encoded_len(&self, version: i16) -> Result<usize> {
75 if version < 0 || version > 0 {
76 return Err(UnsupportedVersion::new(84, version).into());
77 }
78 let mut len: usize = 0;
79 len += compact_array_length_len(self.results.len() as i32);
80 for el in &self.results {
81 len += el.encoded_len(version)?;
82 }
83 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
84 all_tags.sort_by_key(|f| f.tag);
85 len += tagged_fields_len(&all_tags)?;
86 Ok(len)
87 }
88}
89#[derive(Debug, Clone, PartialEq)]
90pub struct ReadStateResult {
91 pub topic_id: KafkaUuid,
93 pub partitions: Vec<PartitionResult>,
95 pub _unknown_tagged_fields: Vec<RawTaggedField>,
96}
97impl Default for ReadStateResult {
98 fn default() -> Self {
99 Self {
100 topic_id: KafkaUuid::ZERO,
101 partitions: Vec::new(),
102 _unknown_tagged_fields: Vec::new(),
103 }
104 }
105}
106impl ReadStateResult {
107 pub fn with_topic_id(mut self, value: KafkaUuid) -> Self {
108 self.topic_id = value;
109 self
110 }
111 pub fn with_partitions(mut self, value: Vec<PartitionResult>) -> Self {
112 self.partitions = value;
113 self
114 }
115 pub fn read(buf: &mut Bytes, version: i16) -> Result<Self> {
116 let topic_id;
117 let partitions;
118 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
119 topic_id = read_uuid(buf)?;
120 partitions = {
121 let len = read_compact_array_length(buf)?;
122 let mut arr = Vec::with_capacity(array_read_capacity(len, (buf).len()));
123 for _ in 0..len {
124 arr.push(PartitionResult::read(buf, version)?);
125 }
126 arr
127 };
128 let tagged_fields = read_tagged_fields(buf)?;
129 for field in &tagged_fields {
130 match field.tag {
131 _ => {
132 _unknown_tagged_fields.push(field.clone());
133 },
134 }
135 }
136 Ok(Self {
137 topic_id,
138 partitions,
139 _unknown_tagged_fields,
140 })
141 }
142 pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
143 write_uuid(buf, &self.topic_id);
144 write_compact_array_length(buf, self.partitions.len() as i32);
145 for el in &self.partitions {
146 el.write(buf, version)?;
147 }
148 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
149 all_tags.sort_by_key(|f| f.tag);
150 write_tagged_fields(buf, &all_tags)?;
151 Ok(())
152 }
153 pub fn encoded_len(&self, version: i16) -> Result<usize> {
154 let mut len: usize = 0;
155 len += 16;
156 len += compact_array_length_len(self.partitions.len() as i32);
157 for el in &self.partitions {
158 len += el.encoded_len(version)?;
159 }
160 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
161 all_tags.sort_by_key(|f| f.tag);
162 len += tagged_fields_len(&all_tags)?;
163 Ok(len)
164 }
165}
166#[derive(Debug, Clone, PartialEq)]
167pub struct PartitionResult {
168 pub partition: i32,
170 pub error_code: i16,
172 pub error_message: Option<KafkaString>,
174 pub state_epoch: i32,
176 pub start_offset: i64,
178 pub state_batches: Vec<StateBatch>,
180 pub _unknown_tagged_fields: Vec<RawTaggedField>,
181}
182impl Default for PartitionResult {
183 fn default() -> Self {
184 Self {
185 partition: 0_i32,
186 error_code: 0_i16,
187 error_message: None,
188 state_epoch: 0_i32,
189 start_offset: 0_i64,
190 state_batches: Vec::new(),
191 _unknown_tagged_fields: Vec::new(),
192 }
193 }
194}
195impl PartitionResult {
196 pub fn with_partition(mut self, value: i32) -> Self {
197 self.partition = value;
198 self
199 }
200 pub fn with_error_code(mut self, value: i16) -> Self {
201 self.error_code = value;
202 self
203 }
204 pub fn with_error_message(mut self, value: Option<KafkaString>) -> Self {
205 self.error_message = value;
206 self
207 }
208 pub fn with_state_epoch(mut self, value: i32) -> Self {
209 self.state_epoch = value;
210 self
211 }
212 pub fn with_start_offset(mut self, value: i64) -> Self {
213 self.start_offset = value;
214 self
215 }
216 pub fn with_state_batches(mut self, value: Vec<StateBatch>) -> Self {
217 self.state_batches = value;
218 self
219 }
220 pub fn read(buf: &mut Bytes, version: i16) -> Result<Self> {
221 let partition;
222 let error_code;
223 let error_message;
224 let state_epoch;
225 let start_offset;
226 let state_batches;
227 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
228 partition = read_i32(buf)?;
229 error_code = read_i16(buf)?;
230 error_message = read_compact_nullable_string(buf)?;
231 state_epoch = read_i32(buf)?;
232 start_offset = read_i64(buf)?;
233 state_batches = {
234 let len = read_compact_array_length(buf)?;
235 let mut arr = Vec::with_capacity(array_read_capacity(len, (buf).len()));
236 for _ in 0..len {
237 arr.push(StateBatch::read(buf, version)?);
238 }
239 arr
240 };
241 let tagged_fields = read_tagged_fields(buf)?;
242 for field in &tagged_fields {
243 match field.tag {
244 _ => {
245 _unknown_tagged_fields.push(field.clone());
246 },
247 }
248 }
249 Ok(Self {
250 partition,
251 error_code,
252 error_message,
253 state_epoch,
254 start_offset,
255 state_batches,
256 _unknown_tagged_fields,
257 })
258 }
259 pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
260 write_i32(buf, self.partition);
261 write_i16(buf, self.error_code);
262 write_compact_nullable_string(buf, self.error_message.as_ref())?;
263 write_i32(buf, self.state_epoch);
264 write_i64(buf, self.start_offset);
265 write_compact_array_length(buf, self.state_batches.len() as i32);
266 for el in &self.state_batches {
267 el.write(buf, version)?;
268 }
269 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
270 all_tags.sort_by_key(|f| f.tag);
271 write_tagged_fields(buf, &all_tags)?;
272 Ok(())
273 }
274 pub fn encoded_len(&self, version: i16) -> Result<usize> {
275 let mut len: usize = 0;
276 len += 4;
277 len += 2;
278 len += compact_nullable_string_len(self.error_message.as_ref())?;
279 len += 4;
280 len += 8;
281 len += compact_array_length_len(self.state_batches.len() as i32);
282 for el in &self.state_batches {
283 len += el.encoded_len(version)?;
284 }
285 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
286 all_tags.sort_by_key(|f| f.tag);
287 len += tagged_fields_len(&all_tags)?;
288 Ok(len)
289 }
290}
291#[derive(Debug, Clone, PartialEq)]
292pub struct StateBatch {
293 pub first_offset: i64,
295 pub last_offset: i64,
297 pub delivery_state: i8,
299 pub delivery_count: i16,
301 pub _unknown_tagged_fields: Vec<RawTaggedField>,
302}
303impl Default for StateBatch {
304 fn default() -> Self {
305 Self {
306 first_offset: 0_i64,
307 last_offset: 0_i64,
308 delivery_state: 0_i8,
309 delivery_count: 0_i16,
310 _unknown_tagged_fields: Vec::new(),
311 }
312 }
313}
314impl StateBatch {
315 pub fn with_first_offset(mut self, value: i64) -> Self {
316 self.first_offset = value;
317 self
318 }
319 pub fn with_last_offset(mut self, value: i64) -> Self {
320 self.last_offset = value;
321 self
322 }
323 pub fn with_delivery_state(mut self, value: i8) -> Self {
324 self.delivery_state = value;
325 self
326 }
327 pub fn with_delivery_count(mut self, value: i16) -> Self {
328 self.delivery_count = value;
329 self
330 }
331 pub fn read(buf: &mut Bytes, _version: i16) -> Result<Self> {
332 let first_offset;
333 let last_offset;
334 let delivery_state;
335 let delivery_count;
336 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
337 first_offset = read_i64(buf)?;
338 last_offset = read_i64(buf)?;
339 delivery_state = read_i8(buf)?;
340 delivery_count = read_i16(buf)?;
341 let tagged_fields = read_tagged_fields(buf)?;
342 for field in &tagged_fields {
343 match field.tag {
344 _ => {
345 _unknown_tagged_fields.push(field.clone());
346 },
347 }
348 }
349 Ok(Self {
350 first_offset,
351 last_offset,
352 delivery_state,
353 delivery_count,
354 _unknown_tagged_fields,
355 })
356 }
357 pub fn write(&self, buf: &mut BytesMut, _version: i16) -> Result<()> {
358 write_i64(buf, self.first_offset);
359 write_i64(buf, self.last_offset);
360 write_i8(buf, self.delivery_state);
361 write_i16(buf, self.delivery_count);
362 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
363 all_tags.sort_by_key(|f| f.tag);
364 write_tagged_fields(buf, &all_tags)?;
365 Ok(())
366 }
367 pub fn encoded_len(&self, _version: i16) -> Result<usize> {
368 let mut len: usize = 0;
369 len += 8;
370 len += 8;
371 len += 1;
372 len += 2;
373 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
374 all_tags.sort_by_key(|f| f.tag);
375 len += tagged_fields_len(&all_tags)?;
376 Ok(len)
377 }
378}