Skip to main content

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

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