kacrab_protocol/generated/
list_groups_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 ListGroupsResponseData {
17 pub throttle_time_ms: i32,
20 pub error_code: i16,
22 pub groups: Vec<ListedGroup>,
24 pub _unknown_tagged_fields: Vec<RawTaggedField>,
25}
26impl Default for ListGroupsResponseData {
27 fn default() -> Self {
28 Self {
29 throttle_time_ms: 0_i32,
30 error_code: 0_i16,
31 groups: Vec::new(),
32 _unknown_tagged_fields: Vec::new(),
33 }
34 }
35}
36impl ListGroupsResponseData {
37 pub fn with_throttle_time_ms(mut self, value: i32) -> Self {
38 self.throttle_time_ms = value;
39 self
40 }
41 pub fn with_error_code(mut self, value: i16) -> Self {
42 self.error_code = value;
43 self
44 }
45 pub fn with_groups(mut self, value: Vec<ListedGroup>) -> Self {
46 self.groups = value;
47 self
48 }
49 pub fn read(buf: &mut Bytes, version: i16) -> Result<Self> {
50 if version < 0 || version > 5 {
51 return Err(UnsupportedVersion::new(16, version).into());
52 }
53 let mut throttle_time_ms = 0_i32;
54 let error_code;
55 let groups;
56 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
57 if version >= 1 {
58 throttle_time_ms = read_i32(buf)?;
59 }
60 error_code = read_i16(buf)?;
61 if version >= 3 {
62 groups = {
63 let len = read_compact_array_length(buf)?;
64 let mut arr = Vec::with_capacity(array_read_capacity(len, (buf).len()));
65 for _ in 0..len {
66 arr.push(ListedGroup::read(buf, version)?);
67 }
68 arr
69 };
70 } else {
71 groups = {
72 let len = read_array_length(buf)?;
73 let mut arr = Vec::with_capacity(array_read_capacity(len, (buf).len()));
74 for _ in 0..len {
75 arr.push(ListedGroup::read(buf, version)?);
76 }
77 arr
78 };
79 }
80 if version >= 3 {
81 let tagged_fields = read_tagged_fields(buf)?;
82 for field in &tagged_fields {
83 match field.tag {
84 _ => {
85 _unknown_tagged_fields.push(field.clone());
86 },
87 }
88 }
89 }
90 Ok(Self {
91 throttle_time_ms,
92 error_code,
93 groups,
94 _unknown_tagged_fields,
95 })
96 }
97 pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
98 if version < 0 || version > 5 {
99 return Err(UnsupportedVersion::new(16, version).into());
100 }
101 if version >= 1 {
102 write_i32(buf, self.throttle_time_ms);
103 } else if self.throttle_time_ms != 0_i32 {
104 return Err(UnsupportedFieldVersion::new(16, "throttle_time_ms", version).into());
105 }
106 write_i16(buf, self.error_code);
107 if version >= 3 {
108 write_compact_array_length(buf, self.groups.len() as i32);
109 for el in &self.groups {
110 el.write(buf, version)?;
111 }
112 } else {
113 write_array_length(buf, self.groups.len() as i32);
114 for el in &self.groups {
115 el.write(buf, version)?;
116 }
117 }
118 if version >= 3 {
119 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
120 all_tags.sort_by_key(|f| f.tag);
121 write_tagged_fields(buf, &all_tags)?;
122 }
123 Ok(())
124 }
125 pub fn encoded_len(&self, version: i16) -> Result<usize> {
126 if version < 0 || version > 5 {
127 return Err(UnsupportedVersion::new(16, version).into());
128 }
129 let mut len: usize = 0;
130 if version >= 1 {
131 len += 4;
132 } else if self.throttle_time_ms != 0_i32 {
133 return Err(UnsupportedFieldVersion::new(16, "throttle_time_ms", version).into());
134 }
135 len += 2;
136 if version >= 3 {
137 len += compact_array_length_len(self.groups.len() as i32);
138 for el in &self.groups {
139 len += el.encoded_len(version)?;
140 }
141 } else {
142 len += array_length_len();
143 for el in &self.groups {
144 len += el.encoded_len(version)?;
145 }
146 }
147 if version >= 3 {
148 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
149 all_tags.sort_by_key(|f| f.tag);
150 len += tagged_fields_len(&all_tags)?;
151 }
152 Ok(len)
153 }
154}
155#[derive(Debug, Clone, PartialEq)]
156pub struct ListedGroup {
157 pub group_id: KafkaString,
159 pub protocol_type: KafkaString,
161 pub group_state: KafkaString,
163 pub group_type: KafkaString,
165 pub _unknown_tagged_fields: Vec<RawTaggedField>,
166}
167impl Default for ListedGroup {
168 fn default() -> Self {
169 Self {
170 group_id: KafkaString::default(),
171 protocol_type: KafkaString::default(),
172 group_state: KafkaString::default(),
173 group_type: KafkaString::default(),
174 _unknown_tagged_fields: Vec::new(),
175 }
176 }
177}
178impl ListedGroup {
179 pub fn with_group_id(mut self, value: KafkaString) -> Self {
180 self.group_id = value;
181 self
182 }
183 pub fn with_protocol_type(mut self, value: KafkaString) -> Self {
184 self.protocol_type = value;
185 self
186 }
187 pub fn with_group_state(mut self, value: KafkaString) -> Self {
188 self.group_state = value;
189 self
190 }
191 pub fn with_group_type(mut self, value: KafkaString) -> Self {
192 self.group_type = value;
193 self
194 }
195 pub fn read(buf: &mut Bytes, version: i16) -> Result<Self> {
196 let group_id;
197 let protocol_type;
198 let mut group_state = KafkaString::default();
199 let mut group_type = KafkaString::default();
200 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
201 if version >= 3 {
202 group_id = read_compact_string(buf)?;
203 } else {
204 group_id = read_string(buf)?;
205 }
206 if version >= 3 {
207 protocol_type = read_compact_string(buf)?;
208 } else {
209 protocol_type = read_string(buf)?;
210 }
211 if version >= 4 {
212 group_state = read_compact_string(buf)?;
213 }
214 if version >= 5 {
215 group_type = read_compact_string(buf)?;
216 }
217 if version >= 3 {
218 let tagged_fields = read_tagged_fields(buf)?;
219 for field in &tagged_fields {
220 match field.tag {
221 _ => {
222 _unknown_tagged_fields.push(field.clone());
223 },
224 }
225 }
226 }
227 Ok(Self {
228 group_id,
229 protocol_type,
230 group_state,
231 group_type,
232 _unknown_tagged_fields,
233 })
234 }
235 pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
236 if version >= 3 {
237 write_compact_string(buf, &self.group_id)?;
238 } else {
239 write_string(buf, &self.group_id)?;
240 }
241 if version >= 3 {
242 write_compact_string(buf, &self.protocol_type)?;
243 } else {
244 write_string(buf, &self.protocol_type)?;
245 }
246 if version >= 4 {
247 write_compact_string(buf, &self.group_state)?;
248 } else if self.group_state != KafkaString::default() {
249 return Err(UnsupportedFieldVersion::new(16, "group_state", version).into());
250 }
251 if version >= 5 {
252 write_compact_string(buf, &self.group_type)?;
253 } else if self.group_type != KafkaString::default() {
254 return Err(UnsupportedFieldVersion::new(16, "group_type", version).into());
255 }
256 if version >= 3 {
257 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
258 all_tags.sort_by_key(|f| f.tag);
259 write_tagged_fields(buf, &all_tags)?;
260 }
261 Ok(())
262 }
263 pub fn encoded_len(&self, version: i16) -> Result<usize> {
264 let mut len: usize = 0;
265 if version >= 3 {
266 len += compact_string_len(&self.group_id)?;
267 } else {
268 len += string_len(&self.group_id)?;
269 }
270 if version >= 3 {
271 len += compact_string_len(&self.protocol_type)?;
272 } else {
273 len += string_len(&self.protocol_type)?;
274 }
275 if version >= 4 {
276 len += compact_string_len(&self.group_state)?;
277 } else if self.group_state != KafkaString::default() {
278 return Err(UnsupportedFieldVersion::new(16, "group_state", version).into());
279 }
280 if version >= 5 {
281 len += compact_string_len(&self.group_type)?;
282 } else if self.group_type != KafkaString::default() {
283 return Err(UnsupportedFieldVersion::new(16, "group_type", version).into());
284 }
285 if version >= 3 {
286 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
287 all_tags.sort_by_key(|f| f.tag);
288 len += tagged_fields_len(&all_tags)?;
289 }
290 Ok(len)
291 }
292}