Skip to main content

krabka_protocol/opt/rustwide/workdir/generated/
DeleteShareGroupOffsetsResponse.borrowed.rs

1// AUTO-GENERATED by krabka-protocol-codegen against a9ce3221537b8653448750697915607dc7936cf3. Do not edit.
2use bytes::BufMut;
3
4use crate::{
5    DecodeBorrow, Encode, ProtocolError, UnknownTaggedFields,
6    owned::delete_share_group_offsets_response,
7    primitives::{
8        array::{array_len_prefix_len, get_array_len, put_array_len},
9        fixed::{get_i16, get_i32, put_i16, put_i32},
10        string_bytes::{
11            compact_nullable_string_len, compact_string_len, nullable_string_len,
12            put_compact_nullable_string, put_compact_string, put_nullable_string, put_string,
13            string_len,
14        },
15        string_bytes_borrowed::{
16            get_compact_nullable_string_borrowed, get_compact_string_borrowed,
17            get_nullable_string_borrowed, get_string_borrowed,
18        },
19        uuid::{Uuid, get_uuid, put_uuid},
20    },
21    tagged_fields::{WriteTaggedFields, read_tagged_fields, tagged_fields_len},
22};
23pub const API_KEY: i16 = 92;
24pub const MIN_VERSION: i16 = 0;
25pub const MAX_VERSION: i16 = 0;
26pub const FLEXIBLE_MIN: i16 = 0;
27#[inline]
28#[must_use]
29pub fn is_flexible(version: i16) -> bool {
30    version >= FLEXIBLE_MIN
31}
32#[derive(Debug, Clone, PartialEq, Eq, Default)]
33pub struct DeleteShareGroupOffsetsResponse<'a> {
34    pub throttle_time_ms: i32,
35    pub error_code: i16,
36    pub error_message: Option<&'a str>,
37    pub responses: Vec<DeleteShareGroupOffsetsResponseTopic<'a>>,
38    pub unknown_tagged_fields: UnknownTaggedFields,
39}
40impl DeleteShareGroupOffsetsResponse<'_> {
41    #[must_use]
42    pub fn to_owned(&self) -> delete_share_group_offsets_response::DeleteShareGroupOffsetsResponse {
43        delete_share_group_offsets_response::DeleteShareGroupOffsetsResponse {
44            throttle_time_ms: (self.throttle_time_ms),
45            error_code: (self.error_code),
46            error_message: (self.error_message).map(str::to_owned),
47            responses: (self.responses)
48                .iter()
49                .map(DeleteShareGroupOffsetsResponseTopic::to_owned)
50                .collect(),
51            unknown_tagged_fields: self.unknown_tagged_fields.clone(),
52        }
53    }
54}
55impl Encode for DeleteShareGroupOffsetsResponse<'_> {
56    fn encode<B: BufMut>(&self, buf: &mut B, version: i16) -> Result<(), ProtocolError> {
57        if !(MIN_VERSION..=MAX_VERSION).contains(&version) {
58            return Err(ProtocolError::UnsupportedVersion {
59                api_key: API_KEY,
60                version,
61            });
62        }
63        let flex = is_flexible(version);
64        if version >= 0 {
65            put_i32(buf, self.throttle_time_ms);
66        }
67        if version >= 0 {
68            put_i16(buf, self.error_code);
69        }
70        if version >= 0 {
71            if flex {
72                put_compact_nullable_string(buf, self.error_message)?;
73            } else {
74                put_nullable_string(buf, self.error_message)?;
75            }
76        }
77        if version >= 0 {
78            {
79                put_array_len(buf, (self.responses).len(), flex)?;
80                for it in &self.responses {
81                    it.encode(buf, version)?;
82                }
83            }
84        }
85        if flex {
86            let tagged = WriteTaggedFields::new();
87            tagged.write(buf, &self.unknown_tagged_fields)?;
88        }
89        Ok(())
90    }
91    fn encoded_len(&self, version: i16) -> usize {
92        let flex = is_flexible(version);
93        let mut n: usize = 0;
94        if version >= 0 {
95            n += 4;
96        }
97        if version >= 0 {
98            n += 2;
99        }
100        if version >= 0 {
101            n += if flex {
102                compact_nullable_string_len(self.error_message)
103            } else {
104                nullable_string_len(self.error_message)
105            };
106        }
107        if version >= 0 {
108            n += {
109                let prefix = array_len_prefix_len((self.responses).len(), flex);
110                let body: usize = (self.responses)
111                    .iter()
112                    .map(|it| it.encoded_len(version))
113                    .sum();
114                prefix + body
115            };
116        }
117        if flex {
118            let known_pairs: Vec<(u32, usize)> = Vec::new();
119            n += tagged_fields_len(&known_pairs, &self.unknown_tagged_fields);
120        }
121        n
122    }
123}
124impl<'de> DecodeBorrow<'de> for DeleteShareGroupOffsetsResponse<'de> {
125    fn decode_borrow(buf: &mut &'de [u8], version: i16) -> Result<Self, ProtocolError> {
126        if !(MIN_VERSION..=MAX_VERSION).contains(&version) {
127            return Err(ProtocolError::UnsupportedVersion {
128                api_key: API_KEY,
129                version,
130            });
131        }
132        let flex = is_flexible(version);
133        let mut out = Self::default();
134        if version >= 0 {
135            out.throttle_time_ms = get_i32(buf)?;
136        }
137        if version >= 0 {
138            out.error_code = get_i16(buf)?;
139        }
140        if version >= 0 {
141            out.error_message = if flex {
142                get_compact_nullable_string_borrowed(buf)?
143            } else {
144                get_nullable_string_borrowed(buf)?
145            };
146        }
147        if version >= 0 {
148            out.responses = {
149                let n = get_array_len(buf, flex)?;
150                let mut v = Vec::with_capacity(n);
151                for _ in 0..n {
152                    v.push(DeleteShareGroupOffsetsResponseTopic::decode_borrow(
153                        buf, version,
154                    )?);
155                }
156                v
157            };
158        }
159        if flex {
160            out.unknown_tagged_fields = read_tagged_fields(buf, |_tag, _payload| Ok(false))?;
161        }
162        Ok(out)
163    }
164}
165#[cfg(test)]
166impl DeleteShareGroupOffsetsResponse<'_> {
167    #[must_use]
168    pub fn populated(version: i16) -> Self {
169        let mut m = Self::default();
170        if version >= 0 {
171            m.throttle_time_ms = 1i32;
172        }
173        if version >= 0 {
174            m.error_code = 1i16;
175        }
176        if version >= 0 {
177            m.error_message = Some("x");
178        }
179        if version >= 0 {
180            m.responses = vec![DeleteShareGroupOffsetsResponseTopic::populated(version)];
181        }
182        m
183    }
184}
185#[derive(Debug, Clone, PartialEq, Eq, Default)]
186pub struct DeleteShareGroupOffsetsResponseTopic<'a> {
187    pub topic_name: &'a str,
188    pub topic_id: Uuid,
189    pub error_code: i16,
190    pub error_message: Option<&'a str>,
191    pub unknown_tagged_fields: UnknownTaggedFields,
192}
193impl DeleteShareGroupOffsetsResponseTopic<'_> {
194    #[must_use]
195    pub fn to_owned(
196        &self,
197    ) -> delete_share_group_offsets_response::DeleteShareGroupOffsetsResponseTopic {
198        delete_share_group_offsets_response::DeleteShareGroupOffsetsResponseTopic {
199            topic_name: (self.topic_name).to_owned(),
200            topic_id: (self.topic_id),
201            error_code: (self.error_code),
202            error_message: (self.error_message).map(str::to_owned),
203            unknown_tagged_fields: self.unknown_tagged_fields.clone(),
204        }
205    }
206}
207impl Encode for DeleteShareGroupOffsetsResponseTopic<'_> {
208    fn encode<B: BufMut>(&self, buf: &mut B, version: i16) -> Result<(), ProtocolError> {
209        let flex = version >= 0;
210        if version >= 0 {
211            if flex {
212                put_compact_string(buf, self.topic_name)?;
213            } else {
214                put_string(buf, self.topic_name)?;
215            }
216        }
217        if version >= 0 {
218            put_uuid(buf, self.topic_id);
219        }
220        if version >= 0 {
221            put_i16(buf, self.error_code);
222        }
223        if version >= 0 {
224            if flex {
225                put_compact_nullable_string(buf, self.error_message)?;
226            } else {
227                put_nullable_string(buf, self.error_message)?;
228            }
229        }
230        if flex {
231            let tagged = WriteTaggedFields::new();
232            tagged.write(buf, &self.unknown_tagged_fields)?;
233        }
234        Ok(())
235    }
236    fn encoded_len(&self, version: i16) -> usize {
237        let flex = version >= 0;
238        let mut n: usize = 0;
239        if version >= 0 {
240            n += if flex {
241                compact_string_len(self.topic_name)
242            } else {
243                string_len(self.topic_name)
244            };
245        }
246        if version >= 0 {
247            n += 16;
248        }
249        if version >= 0 {
250            n += 2;
251        }
252        if version >= 0 {
253            n += if flex {
254                compact_nullable_string_len(self.error_message)
255            } else {
256                nullable_string_len(self.error_message)
257            };
258        }
259        if flex {
260            let known_pairs: Vec<(u32, usize)> = Vec::new();
261            n += tagged_fields_len(&known_pairs, &self.unknown_tagged_fields);
262        }
263        n
264    }
265}
266impl<'de> DecodeBorrow<'de> for DeleteShareGroupOffsetsResponseTopic<'de> {
267    fn decode_borrow(buf: &mut &'de [u8], version: i16) -> Result<Self, ProtocolError> {
268        let flex = version >= 0;
269        let mut out = Self::default();
270        if version >= 0 {
271            out.topic_name = if flex {
272                get_compact_string_borrowed(buf)?
273            } else {
274                get_string_borrowed(buf)?
275            };
276        }
277        if version >= 0 {
278            out.topic_id = get_uuid(buf)?;
279        }
280        if version >= 0 {
281            out.error_code = get_i16(buf)?;
282        }
283        if version >= 0 {
284            out.error_message = if flex {
285                get_compact_nullable_string_borrowed(buf)?
286            } else {
287                get_nullable_string_borrowed(buf)?
288            };
289        }
290        if flex {
291            out.unknown_tagged_fields = read_tagged_fields(buf, |_tag, _payload| Ok(false))?;
292        }
293        Ok(out)
294    }
295}
296#[cfg(test)]
297impl DeleteShareGroupOffsetsResponseTopic<'_> {
298    #[must_use]
299    pub fn populated(version: i16) -> Self {
300        let mut m = Self::default();
301        if version >= 0 {
302            m.topic_name = "x";
303        }
304        if version >= 0 {
305            m.topic_id = Uuid([1u8; 16]);
306        }
307        if version >= 0 {
308            m.error_code = 1i16;
309        }
310        if version >= 0 {
311            m.error_message = Some("x");
312        }
313        m
314    }
315}