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