crabka_protocol/opt/rustwide/workdir/generated/
AlterUserScramCredentialsRequest.borrowed.rs1use crate::primitives::fixed::{get_i8, get_i32, put_i8, put_i32};
3use crate::primitives::string_bytes::{
4 compact_string_len, put_compact_string, put_string, string_len,
5};
6use crate::primitives::string_bytes::{put_bytes, put_compact_bytes};
7use crate::primitives::string_bytes_borrowed::{get_bytes_borrowed, get_compact_bytes_borrowed};
8use crate::primitives::string_bytes_borrowed::{get_compact_string_borrowed, get_string_borrowed};
9use crate::tagged_fields::{WriteTaggedFields, read_tagged_fields, tagged_fields_len};
10use crate::{DecodeBorrow, Encode, ProtocolError, UnknownTaggedFields};
11use bytes::{BufMut, Bytes};
12pub const API_KEY: i16 = 51;
13pub const MIN_VERSION: i16 = 0;
14pub const MAX_VERSION: i16 = 0;
15pub const FLEXIBLE_MIN: i16 = 0;
16#[inline]
17fn is_flexible(version: i16) -> bool {
18 version >= FLEXIBLE_MIN
19}
20#[derive(Debug, Clone, PartialEq, Eq, Default)]
21pub struct AlterUserScramCredentialsRequest<'a> {
22 pub deletions: Vec<ScramCredentialDeletion<'a>>,
23 pub upsertions: Vec<ScramCredentialUpsertion<'a>>,
24 pub unknown_tagged_fields: UnknownTaggedFields,
25}
26impl AlterUserScramCredentialsRequest<'_> {
27 pub fn to_owned(
28 &self,
29 ) -> crate::owned::alter_user_scram_credentials_request::AlterUserScramCredentialsRequest {
30 crate::owned::alter_user_scram_credentials_request::AlterUserScramCredentialsRequest {
31 deletions: (self.deletions)
32 .iter()
33 .map(ScramCredentialDeletion::to_owned)
34 .collect(),
35 upsertions: (self.upsertions)
36 .iter()
37 .map(ScramCredentialUpsertion::to_owned)
38 .collect(),
39 unknown_tagged_fields: self.unknown_tagged_fields.clone(),
40 }
41 }
42}
43impl Encode for AlterUserScramCredentialsRequest<'_> {
44 fn encode<B: BufMut>(&self, buf: &mut B, version: i16) -> Result<(), ProtocolError> {
45 if !(MIN_VERSION..=MAX_VERSION).contains(&version) {
46 return Err(ProtocolError::UnsupportedVersion {
47 api_key: API_KEY,
48 version,
49 });
50 }
51 let flex = is_flexible(version);
52 if version >= 0 {
53 {
54 crate::primitives::array::put_array_len(buf, (self.deletions).len(), flex);
55 for it in &self.deletions {
56 it.encode(buf, version)?;
57 }
58 }
59 }
60 if version >= 0 {
61 {
62 crate::primitives::array::put_array_len(buf, (self.upsertions).len(), flex);
63 for it in &self.upsertions {
64 it.encode(buf, version)?;
65 }
66 }
67 }
68 if flex {
69 let tagged = WriteTaggedFields::new();
70 tagged.write(buf, &self.unknown_tagged_fields);
71 }
72 Ok(())
73 }
74 fn encoded_len(&self, version: i16) -> usize {
75 let flex = is_flexible(version);
76 let mut n: usize = 0;
77 if version >= 0 {
78 n += {
79 let prefix =
80 crate::primitives::array::array_len_prefix_len((self.deletions).len(), flex);
81 let body: usize = (self.deletions)
82 .iter()
83 .map(|it| it.encoded_len(version))
84 .sum();
85 prefix + body
86 };
87 }
88 if version >= 0 {
89 n += {
90 let prefix =
91 crate::primitives::array::array_len_prefix_len((self.upsertions).len(), flex);
92 let body: usize = (self.upsertions)
93 .iter()
94 .map(|it| it.encoded_len(version))
95 .sum();
96 prefix + body
97 };
98 }
99 if flex {
100 let known_pairs: Vec<(u32, usize)> = Vec::new();
101 n += tagged_fields_len(&known_pairs, &self.unknown_tagged_fields);
102 }
103 n
104 }
105}
106impl<'de> DecodeBorrow<'de> for AlterUserScramCredentialsRequest<'de> {
107 fn decode_borrow(buf: &mut &'de [u8], version: i16) -> Result<Self, ProtocolError> {
108 if !(MIN_VERSION..=MAX_VERSION).contains(&version) {
109 return Err(ProtocolError::UnsupportedVersion {
110 api_key: API_KEY,
111 version,
112 });
113 }
114 let flex = is_flexible(version);
115 let mut out = Self::default();
116 if version >= 0 {
117 out.deletions = {
118 let n = crate::primitives::array::get_array_len(buf, flex)?;
119 let mut v = Vec::with_capacity(n);
120 for _ in 0..n {
121 v.push(ScramCredentialDeletion::decode_borrow(buf, version)?);
122 }
123 v
124 };
125 }
126 if version >= 0 {
127 out.upsertions = {
128 let n = crate::primitives::array::get_array_len(buf, flex)?;
129 let mut v = Vec::with_capacity(n);
130 for _ in 0..n {
131 v.push(ScramCredentialUpsertion::decode_borrow(buf, version)?);
132 }
133 v
134 };
135 }
136 if flex {
137 out.unknown_tagged_fields = read_tagged_fields(buf, |_tag, _payload| Ok(false))?;
138 }
139 Ok(out)
140 }
141}
142#[cfg(test)]
143impl AlterUserScramCredentialsRequest<'_> {
144 #[must_use]
145 pub fn populated(version: i16) -> Self {
146 let mut m = Self::default();
147 if version >= 0 {
148 m.deletions = vec![ScramCredentialDeletion::populated(version)];
149 }
150 if version >= 0 {
151 m.upsertions = vec![ScramCredentialUpsertion::populated(version)];
152 }
153 m
154 }
155}
156#[derive(Debug, Clone, PartialEq, Eq, Default)]
157pub struct ScramCredentialDeletion<'a> {
158 pub name: &'a str,
159 pub mechanism: i8,
160 pub unknown_tagged_fields: UnknownTaggedFields,
161}
162impl ScramCredentialDeletion<'_> {
163 pub fn to_owned(
164 &self,
165 ) -> crate::owned::alter_user_scram_credentials_request::ScramCredentialDeletion {
166 crate::owned::alter_user_scram_credentials_request::ScramCredentialDeletion {
167 name: (self.name).to_string(),
168 mechanism: (self.mechanism),
169 unknown_tagged_fields: self.unknown_tagged_fields.clone(),
170 }
171 }
172}
173impl Encode for ScramCredentialDeletion<'_> {
174 fn encode<B: BufMut>(&self, buf: &mut B, version: i16) -> Result<(), ProtocolError> {
175 let flex = version >= 0;
176 if version >= 0 {
177 if flex {
178 put_compact_string(buf, self.name);
179 } else {
180 put_string(buf, self.name);
181 }
182 }
183 if version >= 0 {
184 put_i8(buf, self.mechanism);
185 }
186 if flex {
187 let tagged = WriteTaggedFields::new();
188 tagged.write(buf, &self.unknown_tagged_fields);
189 }
190 Ok(())
191 }
192 fn encoded_len(&self, version: i16) -> usize {
193 let flex = version >= 0;
194 let mut n: usize = 0;
195 if version >= 0 {
196 n += if flex {
197 compact_string_len(self.name)
198 } else {
199 string_len(self.name)
200 };
201 }
202 if version >= 0 {
203 n += 1;
204 }
205 if flex {
206 let known_pairs: Vec<(u32, usize)> = Vec::new();
207 n += tagged_fields_len(&known_pairs, &self.unknown_tagged_fields);
208 }
209 n
210 }
211}
212impl<'de> DecodeBorrow<'de> for ScramCredentialDeletion<'de> {
213 fn decode_borrow(buf: &mut &'de [u8], version: i16) -> Result<Self, ProtocolError> {
214 let flex = version >= 0;
215 let mut out = Self::default();
216 if version >= 0 {
217 out.name = if flex {
218 get_compact_string_borrowed(buf)?
219 } else {
220 get_string_borrowed(buf)?
221 };
222 }
223 if version >= 0 {
224 out.mechanism = get_i8(buf)?;
225 }
226 if flex {
227 out.unknown_tagged_fields = read_tagged_fields(buf, |_tag, _payload| Ok(false))?;
228 }
229 Ok(out)
230 }
231}
232#[cfg(test)]
233impl ScramCredentialDeletion<'_> {
234 #[must_use]
235 pub fn populated(version: i16) -> Self {
236 let mut m = Self::default();
237 if version >= 0 {
238 m.name = "x";
239 }
240 if version >= 0 {
241 m.mechanism = 1i8;
242 }
243 m
244 }
245}
246#[derive(Debug, Clone, PartialEq, Eq, Default)]
247pub struct ScramCredentialUpsertion<'a> {
248 pub name: &'a str,
249 pub mechanism: i8,
250 pub iterations: i32,
251 pub salt: &'a [u8],
252 pub salted_password: &'a [u8],
253 pub unknown_tagged_fields: UnknownTaggedFields,
254}
255impl ScramCredentialUpsertion<'_> {
256 pub fn to_owned(
257 &self,
258 ) -> crate::owned::alter_user_scram_credentials_request::ScramCredentialUpsertion {
259 crate::owned::alter_user_scram_credentials_request::ScramCredentialUpsertion {
260 name: (self.name).to_string(),
261 mechanism: (self.mechanism),
262 iterations: (self.iterations),
263 salt: Bytes::copy_from_slice(self.salt),
264 salted_password: Bytes::copy_from_slice(self.salted_password),
265 unknown_tagged_fields: self.unknown_tagged_fields.clone(),
266 }
267 }
268}
269impl Encode for ScramCredentialUpsertion<'_> {
270 fn encode<B: BufMut>(&self, buf: &mut B, version: i16) -> Result<(), ProtocolError> {
271 let flex = version >= 0;
272 if version >= 0 {
273 if flex {
274 put_compact_string(buf, self.name);
275 } else {
276 put_string(buf, self.name);
277 }
278 }
279 if version >= 0 {
280 put_i8(buf, self.mechanism);
281 }
282 if version >= 0 {
283 put_i32(buf, self.iterations);
284 }
285 if version >= 0 {
286 if flex {
287 put_compact_bytes(buf, self.salt);
288 } else {
289 put_bytes(buf, self.salt);
290 }
291 }
292 if version >= 0 {
293 if flex {
294 put_compact_bytes(buf, self.salted_password);
295 } else {
296 put_bytes(buf, self.salted_password);
297 }
298 }
299 if flex {
300 let tagged = WriteTaggedFields::new();
301 tagged.write(buf, &self.unknown_tagged_fields);
302 }
303 Ok(())
304 }
305 fn encoded_len(&self, version: i16) -> usize {
306 let flex = version >= 0;
307 let mut n: usize = 0;
308 if version >= 0 {
309 n += if flex {
310 compact_string_len(self.name)
311 } else {
312 string_len(self.name)
313 };
314 }
315 if version >= 0 {
316 n += 1;
317 }
318 if version >= 0 {
319 n += 4;
320 }
321 if version >= 0 {
322 n += if flex {
323 crate::primitives::varint::uvarint_len(
324 u32::try_from((self.salt).len() + 1).unwrap(),
325 ) + (self.salt).len()
326 } else {
327 4 + (self.salt).len()
328 };
329 }
330 if version >= 0 {
331 n += if flex {
332 crate::primitives::varint::uvarint_len(
333 u32::try_from((self.salted_password).len() + 1).unwrap(),
334 ) + (self.salted_password).len()
335 } else {
336 4 + (self.salted_password).len()
337 };
338 }
339 if flex {
340 let known_pairs: Vec<(u32, usize)> = Vec::new();
341 n += tagged_fields_len(&known_pairs, &self.unknown_tagged_fields);
342 }
343 n
344 }
345}
346impl<'de> DecodeBorrow<'de> for ScramCredentialUpsertion<'de> {
347 fn decode_borrow(buf: &mut &'de [u8], version: i16) -> Result<Self, ProtocolError> {
348 let flex = version >= 0;
349 let mut out = Self::default();
350 if version >= 0 {
351 out.name = if flex {
352 get_compact_string_borrowed(buf)?
353 } else {
354 get_string_borrowed(buf)?
355 };
356 }
357 if version >= 0 {
358 out.mechanism = get_i8(buf)?;
359 }
360 if version >= 0 {
361 out.iterations = get_i32(buf)?;
362 }
363 if version >= 0 {
364 out.salt = if flex {
365 get_compact_bytes_borrowed(buf)?
366 } else {
367 get_bytes_borrowed(buf)?
368 };
369 }
370 if version >= 0 {
371 out.salted_password = if flex {
372 get_compact_bytes_borrowed(buf)?
373 } else {
374 get_bytes_borrowed(buf)?
375 };
376 }
377 if flex {
378 out.unknown_tagged_fields = read_tagged_fields(buf, |_tag, _payload| Ok(false))?;
379 }
380 Ok(out)
381 }
382}
383#[cfg(test)]
384impl ScramCredentialUpsertion<'_> {
385 #[must_use]
386 pub fn populated(version: i16) -> Self {
387 let mut m = Self::default();
388 if version >= 0 {
389 m.name = "x";
390 }
391 if version >= 0 {
392 m.mechanism = 1i8;
393 }
394 if version >= 0 {
395 m.iterations = 1i32;
396 }
397 if version >= 0 {
398 m.salt = &b"x"[..];
399 }
400 if version >= 0 {
401 m.salted_password = &b"x"[..];
402 }
403 m
404 }
405}