Skip to main content

krabka_protocol/opt/rustwide/workdir/generated/
AlterUserScramCredentialsResponse.borrowed.rs

1// AUTO-GENERATED by krabka-protocol-codegen against a9ce3221537b8653448750697915607dc7936cf3. Do not edit.
2use bytes::BufMut;
3
4use crate::{
5    DecodeBorrow, Encode, ProtocolError, UnknownTaggedFields,
6    owned::alter_user_scram_credentials_response,
7    primitives::{
8        array::{array_len_prefix_len, get_array_len, put_array_len},
9        fixed::{get_i16, get_i32, put_i16, put_i32},
10        string_bytes::{
11            compact_nullable_string_len, compact_string_len, nullable_string_len,
12            put_compact_nullable_string, put_compact_string, put_nullable_string, put_string,
13            string_len,
14        },
15        string_bytes_borrowed::{
16            get_compact_nullable_string_borrowed, get_compact_string_borrowed,
17            get_nullable_string_borrowed, get_string_borrowed,
18        },
19    },
20    tagged_fields::{WriteTaggedFields, read_tagged_fields, tagged_fields_len},
21};
22pub const API_KEY: i16 = 51;
23pub const MIN_VERSION: i16 = 0;
24pub const MAX_VERSION: i16 = 0;
25pub const FLEXIBLE_MIN: i16 = 0;
26#[inline]
27#[must_use]
28pub fn is_flexible(version: i16) -> bool {
29    version >= FLEXIBLE_MIN
30}
31#[derive(Debug, Clone, PartialEq, Eq, Default)]
32pub struct AlterUserScramCredentialsResponse<'a> {
33    pub throttle_time_ms: i32,
34    pub results: Vec<AlterUserScramCredentialsResult<'a>>,
35    pub unknown_tagged_fields: UnknownTaggedFields,
36}
37impl AlterUserScramCredentialsResponse<'_> {
38    #[must_use]
39    pub fn to_owned(
40        &self,
41    ) -> alter_user_scram_credentials_response::AlterUserScramCredentialsResponse {
42        alter_user_scram_credentials_response::AlterUserScramCredentialsResponse {
43            throttle_time_ms: (self.throttle_time_ms),
44            results: (self.results)
45                .iter()
46                .map(AlterUserScramCredentialsResult::to_owned)
47                .collect(),
48            unknown_tagged_fields: self.unknown_tagged_fields.clone(),
49        }
50    }
51}
52impl Encode for AlterUserScramCredentialsResponse<'_> {
53    fn encode<B: BufMut>(&self, buf: &mut B, version: i16) -> Result<(), ProtocolError> {
54        if !(MIN_VERSION..=MAX_VERSION).contains(&version) {
55            return Err(ProtocolError::UnsupportedVersion {
56                api_key: API_KEY,
57                version,
58            });
59        }
60        let flex = is_flexible(version);
61        if version >= 0 {
62            put_i32(buf, self.throttle_time_ms);
63        }
64        if version >= 0 {
65            {
66                put_array_len(buf, (self.results).len(), flex)?;
67                for it in &self.results {
68                    it.encode(buf, version)?;
69                }
70            }
71        }
72        if flex {
73            let tagged = WriteTaggedFields::new();
74            tagged.write(buf, &self.unknown_tagged_fields)?;
75        }
76        Ok(())
77    }
78    fn encoded_len(&self, version: i16) -> usize {
79        let flex = is_flexible(version);
80        let mut n: usize = 0;
81        if version >= 0 {
82            n += 4;
83        }
84        if version >= 0 {
85            n += {
86                let prefix = array_len_prefix_len((self.results).len(), flex);
87                let body: usize = (self.results)
88                    .iter()
89                    .map(|it| it.encoded_len(version))
90                    .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 AlterUserScramCredentialsResponse<'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.throttle_time_ms = get_i32(buf)?;
113        }
114        if version >= 0 {
115            out.results = {
116                let n = get_array_len(buf, flex)?;
117                let mut v = Vec::with_capacity(n);
118                for _ in 0..n {
119                    v.push(AlterUserScramCredentialsResult::decode_borrow(
120                        buf, version,
121                    )?);
122                }
123                v
124            };
125        }
126        if flex {
127            out.unknown_tagged_fields = read_tagged_fields(buf, |_tag, _payload| Ok(false))?;
128        }
129        Ok(out)
130    }
131}
132#[cfg(test)]
133impl AlterUserScramCredentialsResponse<'_> {
134    #[must_use]
135    pub fn populated(version: i16) -> Self {
136        let mut m = Self::default();
137        if version >= 0 {
138            m.throttle_time_ms = 1i32;
139        }
140        if version >= 0 {
141            m.results = vec![AlterUserScramCredentialsResult::populated(version)];
142        }
143        m
144    }
145}
146#[derive(Debug, Clone, PartialEq, Eq)]
147pub struct AlterUserScramCredentialsResult<'a> {
148    pub user: &'a str,
149    pub error_code: i16,
150    pub error_message: Option<&'a str>,
151    pub unknown_tagged_fields: UnknownTaggedFields,
152}
153impl Default for AlterUserScramCredentialsResult<'_> {
154    fn default() -> Self {
155        Self {
156            user: "",
157            error_code: 0i16,
158            error_message: Some(""),
159            unknown_tagged_fields: UnknownTaggedFields::default(),
160        }
161    }
162}
163impl AlterUserScramCredentialsResult<'_> {
164    #[must_use]
165    pub fn to_owned(
166        &self,
167    ) -> alter_user_scram_credentials_response::AlterUserScramCredentialsResult {
168        alter_user_scram_credentials_response::AlterUserScramCredentialsResult {
169            user: (self.user).to_owned(),
170            error_code: (self.error_code),
171            error_message: (self.error_message).map(str::to_owned),
172            unknown_tagged_fields: self.unknown_tagged_fields.clone(),
173        }
174    }
175}
176impl Encode for AlterUserScramCredentialsResult<'_> {
177    fn encode<B: BufMut>(&self, buf: &mut B, version: i16) -> Result<(), ProtocolError> {
178        let flex = version >= 0;
179        if version >= 0 {
180            if flex {
181                put_compact_string(buf, self.user)?;
182            } else {
183                put_string(buf, self.user)?;
184            }
185        }
186        if version >= 0 {
187            put_i16(buf, self.error_code);
188        }
189        if version >= 0 {
190            if flex {
191                put_compact_nullable_string(buf, self.error_message)?;
192            } else {
193                put_nullable_string(buf, self.error_message)?;
194            }
195        }
196        if flex {
197            let tagged = WriteTaggedFields::new();
198            tagged.write(buf, &self.unknown_tagged_fields)?;
199        }
200        Ok(())
201    }
202    fn encoded_len(&self, version: i16) -> usize {
203        let flex = version >= 0;
204        let mut n: usize = 0;
205        if version >= 0 {
206            n += if flex {
207                compact_string_len(self.user)
208            } else {
209                string_len(self.user)
210            };
211        }
212        if version >= 0 {
213            n += 2;
214        }
215        if version >= 0 {
216            n += if flex {
217                compact_nullable_string_len(self.error_message)
218            } else {
219                nullable_string_len(self.error_message)
220            };
221        }
222        if flex {
223            let known_pairs: Vec<(u32, usize)> = Vec::new();
224            n += tagged_fields_len(&known_pairs, &self.unknown_tagged_fields);
225        }
226        n
227    }
228}
229impl<'de> DecodeBorrow<'de> for AlterUserScramCredentialsResult<'de> {
230    fn decode_borrow(buf: &mut &'de [u8], version: i16) -> Result<Self, ProtocolError> {
231        let flex = version >= 0;
232        let mut out = Self::default();
233        if version >= 0 {
234            out.user = if flex {
235                get_compact_string_borrowed(buf)?
236            } else {
237                get_string_borrowed(buf)?
238            };
239        }
240        if version >= 0 {
241            out.error_code = get_i16(buf)?;
242        }
243        if version >= 0 {
244            out.error_message = if flex {
245                get_compact_nullable_string_borrowed(buf)?
246            } else {
247                get_nullable_string_borrowed(buf)?
248            };
249        }
250        if flex {
251            out.unknown_tagged_fields = read_tagged_fields(buf, |_tag, _payload| Ok(false))?;
252        }
253        Ok(out)
254    }
255}
256#[cfg(test)]
257impl AlterUserScramCredentialsResult<'_> {
258    #[must_use]
259    pub fn populated(version: i16) -> Self {
260        let mut m = Self::default();
261        if version >= 0 {
262            m.user = "x";
263        }
264        if version >= 0 {
265            m.error_code = 1i16;
266        }
267        if version >= 0 {
268            m.error_message = Some("x");
269        }
270        m
271    }
272}