kacrab_protocol/generated/
update_features_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 UpdateFeaturesRequestData {
17 pub timeout_ms: i32,
19 pub feature_updates: Vec<FeatureUpdateKey>,
21 pub validate_only: bool,
23 pub _unknown_tagged_fields: Vec<RawTaggedField>,
24}
25impl Default for UpdateFeaturesRequestData {
26 fn default() -> Self {
27 Self {
28 timeout_ms: 60000i32,
29 feature_updates: Vec::new(),
30 validate_only: false,
31 _unknown_tagged_fields: Vec::new(),
32 }
33 }
34}
35impl UpdateFeaturesRequestData {
36 pub fn with_timeout_ms(mut self, value: i32) -> Self {
37 self.timeout_ms = value;
38 self
39 }
40 pub fn with_feature_updates(mut self, value: Vec<FeatureUpdateKey>) -> Self {
41 self.feature_updates = value;
42 self
43 }
44 pub fn with_validate_only(mut self, value: bool) -> Self {
45 self.validate_only = value;
46 self
47 }
48 pub fn read(buf: &mut Bytes, version: i16) -> Result<Self> {
49 if version < 0 || version > 2 {
50 return Err(UnsupportedVersion::new(57, version).into());
51 }
52 let timeout_ms;
53 let feature_updates;
54 let mut validate_only = false;
55 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
56 timeout_ms = read_i32(buf)?;
57 feature_updates = {
58 let len = read_compact_array_length(buf)?;
59 let mut arr = Vec::with_capacity(len.max(0) as usize);
60 for _ in 0..len {
61 arr.push(FeatureUpdateKey::read(buf, version)?);
62 }
63 arr
64 };
65 if version >= 1 {
66 validate_only = read_bool(buf)?;
67 }
68 let tagged_fields = read_tagged_fields(buf)?;
69 for field in &tagged_fields {
70 match field.tag {
71 _ => {
72 _unknown_tagged_fields.push(field.clone());
73 },
74 }
75 }
76 Ok(Self {
77 timeout_ms,
78 feature_updates,
79 validate_only,
80 _unknown_tagged_fields,
81 })
82 }
83 pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
84 if version < 0 || version > 2 {
85 return Err(UnsupportedVersion::new(57, version).into());
86 }
87 write_i32(buf, self.timeout_ms);
88 write_compact_array_length(buf, self.feature_updates.len() as i32);
89 for el in &self.feature_updates {
90 el.write(buf, version)?;
91 }
92 if version >= 1 {
93 write_bool(buf, self.validate_only);
94 } else if self.validate_only != false {
95 return Err(UnsupportedFieldVersion::new(57, "validate_only", version).into());
96 }
97 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
98 all_tags.sort_by_key(|f| f.tag);
99 write_tagged_fields(buf, &all_tags)?;
100 Ok(())
101 }
102 pub fn encoded_len(&self, version: i16) -> Result<usize> {
103 if version < 0 || version > 2 {
104 return Err(UnsupportedVersion::new(57, version).into());
105 }
106 let mut len: usize = 0;
107 len += 4;
108 len += compact_array_length_len(self.feature_updates.len() as i32);
109 for el in &self.feature_updates {
110 len += el.encoded_len(version)?;
111 }
112 if version >= 1 {
113 len += 1;
114 } else if self.validate_only != false {
115 return Err(UnsupportedFieldVersion::new(57, "validate_only", version).into());
116 }
117 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
118 all_tags.sort_by_key(|f| f.tag);
119 len += tagged_fields_len(&all_tags)?;
120 Ok(len)
121 }
122}
123#[derive(Debug, Clone, PartialEq)]
124pub struct FeatureUpdateKey {
125 pub feature: KafkaString,
127 pub max_version_level: i16,
130 pub allow_downgrade: bool,
135 pub upgrade_type: i8,
138 pub _unknown_tagged_fields: Vec<RawTaggedField>,
139}
140impl Default for FeatureUpdateKey {
141 fn default() -> Self {
142 Self {
143 feature: KafkaString::default(),
144 max_version_level: 0_i16,
145 allow_downgrade: false,
146 upgrade_type: 1i8,
147 _unknown_tagged_fields: Vec::new(),
148 }
149 }
150}
151impl FeatureUpdateKey {
152 pub fn with_feature(mut self, value: KafkaString) -> Self {
153 self.feature = value;
154 self
155 }
156 pub fn with_max_version_level(mut self, value: i16) -> Self {
157 self.max_version_level = value;
158 self
159 }
160 pub fn with_allow_downgrade(mut self, value: bool) -> Self {
161 self.allow_downgrade = value;
162 self
163 }
164 pub fn with_upgrade_type(mut self, value: i8) -> Self {
165 self.upgrade_type = value;
166 self
167 }
168 pub fn read(buf: &mut Bytes, version: i16) -> Result<Self> {
169 let feature;
170 let max_version_level;
171 let mut allow_downgrade = false;
172 let mut upgrade_type = 1i8;
173 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
174 feature = read_compact_string(buf)?;
175 max_version_level = read_i16(buf)?;
176 if version == 0 {
177 allow_downgrade = read_bool(buf)?;
178 }
179 if version >= 1 {
180 upgrade_type = read_i8(buf)?;
181 }
182 let tagged_fields = read_tagged_fields(buf)?;
183 for field in &tagged_fields {
184 match field.tag {
185 _ => {
186 _unknown_tagged_fields.push(field.clone());
187 },
188 }
189 }
190 Ok(Self {
191 feature,
192 max_version_level,
193 allow_downgrade,
194 upgrade_type,
195 _unknown_tagged_fields,
196 })
197 }
198 pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
199 write_compact_string(buf, &self.feature)?;
200 write_i16(buf, self.max_version_level);
201 if version == 0 {
202 write_bool(buf, self.allow_downgrade);
203 } else if self.allow_downgrade != false {
204 return Err(UnsupportedFieldVersion::new(57, "allow_downgrade", version).into());
205 }
206 if version >= 1 {
207 write_i8(buf, self.upgrade_type);
208 } else if self.upgrade_type != 1i8 {
209 return Err(UnsupportedFieldVersion::new(57, "upgrade_type", version).into());
210 }
211 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
212 all_tags.sort_by_key(|f| f.tag);
213 write_tagged_fields(buf, &all_tags)?;
214 Ok(())
215 }
216 pub fn encoded_len(&self, version: i16) -> Result<usize> {
217 let mut len: usize = 0;
218 len += compact_string_len(&self.feature)?;
219 len += 2;
220 if version == 0 {
221 len += 1;
222 } else if self.allow_downgrade != false {
223 return Err(UnsupportedFieldVersion::new(57, "allow_downgrade", version).into());
224 }
225 if version >= 1 {
226 len += 1;
227 } else if self.upgrade_type != 1i8 {
228 return Err(UnsupportedFieldVersion::new(57, "upgrade_type", version).into());
229 }
230 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
231 all_tags.sort_by_key(|f| f.tag);
232 len += tagged_fields_len(&all_tags)?;
233 Ok(len)
234 }
235}