krabka_protocol/opt/rustwide/workdir/generated/
DescribeUserScramCredentialsRequest.borrowed.rs1use bytes::BufMut;
3
4use crate::{
5 DecodeBorrow, Encode, ProtocolError, UnknownTaggedFields,
6 primitives::{
7 string_bytes::{compact_string_len, put_compact_string, put_string, string_len},
8 string_bytes_borrowed::{get_compact_string_borrowed, get_string_borrowed},
9 },
10 tagged_fields::{WriteTaggedFields, read_tagged_fields, tagged_fields_len},
11};
12pub const API_KEY: i16 = 50;
13pub const MIN_VERSION: i16 = 0;
14pub const MAX_VERSION: i16 = 0;
15pub const LATEST_STABLE_VERSION: i16 = 0;
16pub const FLEXIBLE_MIN: i16 = 0;
17#[inline]
18#[must_use]
19pub fn is_flexible(version: i16) -> bool {
20 version >= FLEXIBLE_MIN
21}
22#[derive(Debug, Clone, PartialEq, Eq)]
23pub struct DescribeUserScramCredentialsRequest<'a> {
24 pub users: Option<Vec<UserName<'a>>>,
25 pub unknown_tagged_fields: UnknownTaggedFields,
26}
27impl Default for DescribeUserScramCredentialsRequest<'_> {
28 fn default() -> Self {
29 Self {
30 users: Some(Vec::new()),
31 unknown_tagged_fields: UnknownTaggedFields::default(),
32 }
33 }
34}
35impl DescribeUserScramCredentialsRequest<'_> {
36 #[must_use]
40 pub fn to_owned(
41 &self,
42 ) -> crate::owned::describe_user_scram_credentials_request::DescribeUserScramCredentialsRequest
43 {
44 crate::owned::describe_user_scram_credentials_request::DescribeUserScramCredentialsRequest {
45 users: (self.users)
46 .as_ref()
47 .map(|v| v.iter().map(UserName::to_owned).collect()),
48 unknown_tagged_fields: self.unknown_tagged_fields.clone(),
49 }
50 }
51}
52impl Encode for DescribeUserScramCredentialsRequest<'_> {
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 {
63 let len = (self.users).as_ref().map(Vec::len);
64 crate::primitives::array::put_nullable_array_len(buf, len, flex);
65 if let Some(v) = &self.users {
66 for it in v {
67 it.encode(buf, version)?;
68 }
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 += {
83 let opt: Option<&Vec<_>> = (self.users).as_ref();
84 let prefix = crate::primitives::array::nullable_array_len_prefix_len(
85 opt.map(std::vec::Vec::len),
86 flex,
87 );
88 let body: usize =
89 opt.map_or(0, |v| v.iter().map(|it| it.encoded_len(version)).sum());
90 prefix + body
91 };
92 }
93 if flex {
94 let known_pairs: Vec<(u32, usize)> = Vec::new();
95 n += tagged_fields_len(&known_pairs, &self.unknown_tagged_fields);
96 }
97 n
98 }
99}
100impl<'de> DecodeBorrow<'de> for DescribeUserScramCredentialsRequest<'de> {
101 fn decode_borrow(buf: &mut &'de [u8], version: i16) -> Result<Self, ProtocolError> {
102 if !(MIN_VERSION..=MAX_VERSION).contains(&version) {
103 return Err(ProtocolError::UnsupportedVersion {
104 api_key: API_KEY,
105 version,
106 });
107 }
108 let flex = is_flexible(version);
109 let mut out = Self::default();
110 if version >= 0 {
111 out.users = {
112 let opt = crate::primitives::array::get_nullable_array_len(buf, flex)?;
113 match opt {
114 None => None,
115 Some(n) => {
116 let mut v = Vec::with_capacity(n);
117 for _ in 0..n {
118 v.push(UserName::decode_borrow(buf, version)?);
119 }
120 Some(v)
121 }
122 }
123 };
124 }
125 if flex {
126 out.unknown_tagged_fields = read_tagged_fields(buf, |_tag, _payload| Ok(false))?;
127 }
128 Ok(out)
129 }
130}
131#[cfg(test)]
132impl DescribeUserScramCredentialsRequest<'_> {
133 #[must_use]
134 pub fn populated(version: i16) -> Self {
135 let mut m = Self::default();
136 if version >= 0 {
137 m.users = Some(vec![UserName::populated(version)]);
138 }
139 m
140 }
141}
142#[derive(Debug, Clone, PartialEq, Eq, Default)]
143pub struct UserName<'a> {
144 pub name: &'a str,
145 pub unknown_tagged_fields: UnknownTaggedFields,
146}
147impl UserName<'_> {
148 #[must_use]
152 pub fn to_owned(&self) -> crate::owned::describe_user_scram_credentials_request::UserName {
153 crate::owned::describe_user_scram_credentials_request::UserName {
154 name: (self.name).to_string(),
155 unknown_tagged_fields: self.unknown_tagged_fields.clone(),
156 }
157 }
158}
159impl Encode for UserName<'_> {
160 fn encode<B: BufMut>(&self, buf: &mut B, version: i16) -> Result<(), ProtocolError> {
161 let flex = version >= 0;
162 if version >= 0 {
163 if flex {
164 let () = put_compact_string(buf, self.name);
165 } else {
166 let () = put_string(buf, self.name);
167 }
168 }
169 if flex {
170 let tagged = WriteTaggedFields::new();
171 tagged.write(buf, &self.unknown_tagged_fields);
172 }
173 Ok(())
174 }
175 fn encoded_len(&self, version: i16) -> usize {
176 let flex = version >= 0;
177 let mut n: usize = 0;
178 if version >= 0 {
179 n += if flex {
180 compact_string_len(self.name)
181 } else {
182 string_len(self.name)
183 };
184 }
185 if flex {
186 let known_pairs: Vec<(u32, usize)> = Vec::new();
187 n += tagged_fields_len(&known_pairs, &self.unknown_tagged_fields);
188 }
189 n
190 }
191}
192impl<'de> DecodeBorrow<'de> for UserName<'de> {
193 fn decode_borrow(buf: &mut &'de [u8], version: i16) -> Result<Self, ProtocolError> {
194 let flex = version >= 0;
195 let mut out = Self::default();
196 if version >= 0 {
197 out.name = if flex {
198 get_compact_string_borrowed(buf)?
199 } else {
200 get_string_borrowed(buf)?
201 };
202 }
203 if flex {
204 out.unknown_tagged_fields = read_tagged_fields(buf, |_tag, _payload| Ok(false))?;
205 }
206 Ok(out)
207 }
208}
209#[cfg(test)]
210impl UserName<'_> {
211 #[must_use]
212 pub fn populated(version: i16) -> Self {
213 let mut m = Self::default();
214 if version >= 0 {
215 m.name = "x";
216 }
217 m
218 }
219}