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