kacrab_protocol/generated/
describe_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 DescribeAclsRequestData {
17 pub resource_type_filter: i8,
19 pub resource_name_filter: Option<KafkaString>,
21 pub pattern_type_filter: i8,
23 pub principal_filter: Option<KafkaString>,
25 pub host_filter: Option<KafkaString>,
27 pub operation: i8,
29 pub permission_type: i8,
31 pub _unknown_tagged_fields: Vec<RawTaggedField>,
32}
33impl Default for DescribeAclsRequestData {
34 fn default() -> Self {
35 Self {
36 resource_type_filter: 0_i8,
37 resource_name_filter: None,
38 pattern_type_filter: 3i8,
39 principal_filter: None,
40 host_filter: None,
41 operation: 0_i8,
42 permission_type: 0_i8,
43 _unknown_tagged_fields: Vec::new(),
44 }
45 }
46}
47impl DescribeAclsRequestData {
48 pub fn with_resource_type_filter(mut self, value: i8) -> Self {
49 self.resource_type_filter = value;
50 self
51 }
52 pub fn with_resource_name_filter(mut self, value: Option<KafkaString>) -> Self {
53 self.resource_name_filter = value;
54 self
55 }
56 pub fn with_pattern_type_filter(mut self, value: i8) -> Self {
57 self.pattern_type_filter = value;
58 self
59 }
60 pub fn with_principal_filter(mut self, value: Option<KafkaString>) -> Self {
61 self.principal_filter = value;
62 self
63 }
64 pub fn with_host_filter(mut self, value: Option<KafkaString>) -> Self {
65 self.host_filter = value;
66 self
67 }
68 pub fn with_operation(mut self, value: i8) -> Self {
69 self.operation = value;
70 self
71 }
72 pub fn with_permission_type(mut self, value: i8) -> Self {
73 self.permission_type = value;
74 self
75 }
76 pub fn read(buf: &mut Bytes, version: i16) -> Result<Self> {
77 if version < 1 || version > 3 {
78 return Err(UnsupportedVersion::new(29, version).into());
79 }
80 let resource_type_filter;
81 let resource_name_filter;
82 let pattern_type_filter;
83 let principal_filter;
84 let host_filter;
85 let operation;
86 let permission_type;
87 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
88 resource_type_filter = read_i8(buf)?;
89 if version >= 2 {
90 resource_name_filter = read_compact_nullable_string(buf)?;
91 } else {
92 resource_name_filter = read_nullable_string(buf)?;
93 }
94 pattern_type_filter = read_i8(buf)?;
95 if version >= 2 {
96 principal_filter = read_compact_nullable_string(buf)?;
97 } else {
98 principal_filter = read_nullable_string(buf)?;
99 }
100 if version >= 2 {
101 host_filter = read_compact_nullable_string(buf)?;
102 } else {
103 host_filter = read_nullable_string(buf)?;
104 }
105 operation = read_i8(buf)?;
106 permission_type = read_i8(buf)?;
107 if version >= 2 {
108 let tagged_fields = read_tagged_fields(buf)?;
109 for field in &tagged_fields {
110 match field.tag {
111 _ => {
112 _unknown_tagged_fields.push(field.clone());
113 },
114 }
115 }
116 }
117 Ok(Self {
118 resource_type_filter,
119 resource_name_filter,
120 pattern_type_filter,
121 principal_filter,
122 host_filter,
123 operation,
124 permission_type,
125 _unknown_tagged_fields,
126 })
127 }
128 pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
129 if version < 1 || version > 3 {
130 return Err(UnsupportedVersion::new(29, version).into());
131 }
132 write_i8(buf, self.resource_type_filter);
133 if version >= 2 {
134 write_compact_nullable_string(buf, self.resource_name_filter.as_ref())?;
135 } else {
136 write_nullable_string(buf, self.resource_name_filter.as_ref())?;
137 }
138 write_i8(buf, self.pattern_type_filter);
139 if version >= 2 {
140 write_compact_nullable_string(buf, self.principal_filter.as_ref())?;
141 } else {
142 write_nullable_string(buf, self.principal_filter.as_ref())?;
143 }
144 if version >= 2 {
145 write_compact_nullable_string(buf, self.host_filter.as_ref())?;
146 } else {
147 write_nullable_string(buf, self.host_filter.as_ref())?;
148 }
149 write_i8(buf, self.operation);
150 write_i8(buf, self.permission_type);
151 if version >= 2 {
152 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
153 all_tags.sort_by_key(|f| f.tag);
154 write_tagged_fields(buf, &all_tags)?;
155 }
156 Ok(())
157 }
158 pub fn encoded_len(&self, version: i16) -> Result<usize> {
159 if version < 1 || version > 3 {
160 return Err(UnsupportedVersion::new(29, version).into());
161 }
162 let mut len: usize = 0;
163 len += 1;
164 if version >= 2 {
165 len += compact_nullable_string_len(self.resource_name_filter.as_ref())?;
166 } else {
167 len += nullable_string_len(self.resource_name_filter.as_ref())?;
168 }
169 len += 1;
170 if version >= 2 {
171 len += compact_nullable_string_len(self.principal_filter.as_ref())?;
172 } else {
173 len += nullable_string_len(self.principal_filter.as_ref())?;
174 }
175 if version >= 2 {
176 len += compact_nullable_string_len(self.host_filter.as_ref())?;
177 } else {
178 len += nullable_string_len(self.host_filter.as_ref())?;
179 }
180 len += 1;
181 len += 1;
182 if version >= 2 {
183 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
184 all_tags.sort_by_key(|f| f.tag);
185 len += tagged_fields_len(&all_tags)?;
186 }
187 Ok(len)
188 }
189}