krabka_protocol/opt/rustwide/workdir/generated/
DeleteShareGroupOffsetsRequest.borrowed.rs1use bytes::BufMut;
3
4use crate::{
5 DecodeBorrow, Encode, ProtocolError, UnknownTaggedFields,
6 primitives::{
7 string_bytes::{compact_string_len, put_compact_string, put_string, string_len},
8 string_bytes_borrowed::{get_compact_string_borrowed, get_string_borrowed},
9 },
10 tagged_fields::{WriteTaggedFields, read_tagged_fields, tagged_fields_len},
11};
12pub const API_KEY: i16 = 92;
13pub const MIN_VERSION: i16 = 0;
14pub const MAX_VERSION: i16 = 0;
15pub const LATEST_STABLE_VERSION: i16 = 0;
16pub const FLEXIBLE_MIN: i16 = 0;
17#[inline]
18#[must_use]
19pub fn is_flexible(version: i16) -> bool {
20 version >= FLEXIBLE_MIN
21}
22#[derive(Debug, Clone, PartialEq, Eq, Default)]
23pub struct DeleteShareGroupOffsetsRequest<'a> {
24 pub group_id: &'a str,
25 pub topics: Vec<DeleteShareGroupOffsetsRequestTopic<'a>>,
26 pub unknown_tagged_fields: UnknownTaggedFields,
27}
28impl DeleteShareGroupOffsetsRequest<'_> {
29 #[must_use]
33 pub fn to_owned(
34 &self,
35 ) -> crate::owned::delete_share_group_offsets_request::DeleteShareGroupOffsetsRequest {
36 crate::owned::delete_share_group_offsets_request::DeleteShareGroupOffsetsRequest {
37 group_id: (self.group_id).to_string(),
38 topics: (self.topics)
39 .iter()
40 .map(DeleteShareGroupOffsetsRequestTopic::to_owned)
41 .collect(),
42 unknown_tagged_fields: self.unknown_tagged_fields.clone(),
43 }
44 }
45}
46impl Encode for DeleteShareGroupOffsetsRequest<'_> {
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 if flex {
57 let () = put_compact_string(buf, self.group_id);
58 } else {
59 let () = put_string(buf, self.group_id);
60 }
61 }
62 if version >= 0 {
63 {
64 crate::primitives::array::put_array_len(buf, (self.topics).len(), flex);
65 for it in &self.topics {
66 it.encode(buf, version)?;
67 }
68 };
69 }
70 if flex {
71 let tagged = WriteTaggedFields::new();
72 tagged.write(buf, &self.unknown_tagged_fields);
73 }
74 Ok(())
75 }
76 fn encoded_len(&self, version: i16) -> usize {
77 let flex = is_flexible(version);
78 let mut n: usize = 0;
79 if version >= 0 {
80 n += if flex {
81 compact_string_len(self.group_id)
82 } else {
83 string_len(self.group_id)
84 };
85 }
86 if version >= 0 {
87 n += {
88 let prefix =
89 crate::primitives::array::array_len_prefix_len((self.topics).len(), flex);
90 let body: usize = (self.topics).iter().map(|it| it.encoded_len(version)).sum();
91 prefix + body
92 };
93 }
94 if flex {
95 let known_pairs: Vec<(u32, usize)> = Vec::new();
96 n += tagged_fields_len(&known_pairs, &self.unknown_tagged_fields);
97 }
98 n
99 }
100}
101impl<'de> DecodeBorrow<'de> for DeleteShareGroupOffsetsRequest<'de> {
102 fn decode_borrow(buf: &mut &'de [u8], version: i16) -> Result<Self, ProtocolError> {
103 if !(MIN_VERSION..=MAX_VERSION).contains(&version) {
104 return Err(ProtocolError::UnsupportedVersion {
105 api_key: API_KEY,
106 version,
107 });
108 }
109 let flex = is_flexible(version);
110 let mut out = Self::default();
111 if version >= 0 {
112 out.group_id = if flex {
113 get_compact_string_borrowed(buf)?
114 } else {
115 get_string_borrowed(buf)?
116 };
117 }
118 if version >= 0 {
119 out.topics = {
120 let n = crate::primitives::array::get_array_len(buf, flex)?;
121 let mut v = Vec::with_capacity(n);
122 for _ in 0..n {
123 v.push(DeleteShareGroupOffsetsRequestTopic::decode_borrow(
124 buf, version,
125 )?);
126 }
127 v
128 };
129 }
130 if flex {
131 out.unknown_tagged_fields = read_tagged_fields(buf, |_tag, _payload| Ok(false))?;
132 }
133 Ok(out)
134 }
135}
136#[cfg(test)]
137impl DeleteShareGroupOffsetsRequest<'_> {
138 #[must_use]
139 pub fn populated(version: i16) -> Self {
140 let mut m = Self::default();
141 if version >= 0 {
142 m.group_id = "x";
143 }
144 if version >= 0 {
145 m.topics = vec![DeleteShareGroupOffsetsRequestTopic::populated(version)];
146 }
147 m
148 }
149}
150#[derive(Debug, Clone, PartialEq, Eq, Default)]
151pub struct DeleteShareGroupOffsetsRequestTopic<'a> {
152 pub topic_name: &'a str,
153 pub unknown_tagged_fields: UnknownTaggedFields,
154}
155impl DeleteShareGroupOffsetsRequestTopic<'_> {
156 #[must_use]
160 pub fn to_owned(
161 &self,
162 ) -> crate::owned::delete_share_group_offsets_request::DeleteShareGroupOffsetsRequestTopic {
163 crate::owned::delete_share_group_offsets_request::DeleteShareGroupOffsetsRequestTopic {
164 topic_name: (self.topic_name).to_string(),
165 unknown_tagged_fields: self.unknown_tagged_fields.clone(),
166 }
167 }
168}
169impl Encode for DeleteShareGroupOffsetsRequestTopic<'_> {
170 fn encode<B: BufMut>(&self, buf: &mut B, version: i16) -> Result<(), ProtocolError> {
171 let flex = version >= 0;
172 if version >= 0 {
173 if flex {
174 let () = put_compact_string(buf, self.topic_name);
175 } else {
176 let () = put_string(buf, self.topic_name);
177 }
178 }
179 if flex {
180 let tagged = WriteTaggedFields::new();
181 tagged.write(buf, &self.unknown_tagged_fields);
182 }
183 Ok(())
184 }
185 fn encoded_len(&self, version: i16) -> usize {
186 let flex = version >= 0;
187 let mut n: usize = 0;
188 if version >= 0 {
189 n += if flex {
190 compact_string_len(self.topic_name)
191 } else {
192 string_len(self.topic_name)
193 };
194 }
195 if flex {
196 let known_pairs: Vec<(u32, usize)> = Vec::new();
197 n += tagged_fields_len(&known_pairs, &self.unknown_tagged_fields);
198 }
199 n
200 }
201}
202impl<'de> DecodeBorrow<'de> for DeleteShareGroupOffsetsRequestTopic<'de> {
203 fn decode_borrow(buf: &mut &'de [u8], version: i16) -> Result<Self, ProtocolError> {
204 let flex = version >= 0;
205 let mut out = Self::default();
206 if version >= 0 {
207 out.topic_name = if flex {
208 get_compact_string_borrowed(buf)?
209 } else {
210 get_string_borrowed(buf)?
211 };
212 }
213 if flex {
214 out.unknown_tagged_fields = read_tagged_fields(buf, |_tag, _payload| Ok(false))?;
215 }
216 Ok(out)
217 }
218}
219#[cfg(test)]
220impl DeleteShareGroupOffsetsRequestTopic<'_> {
221 #[must_use]
222 pub fn populated(version: i16) -> Self {
223 let mut m = Self::default();
224 if version >= 0 {
225 m.topic_name = "x";
226 }
227 m
228 }
229}