kacrab_protocol/generated/
leader_change_message.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 LeaderChangeMessageData {
17 pub version: i16,
19 pub leader_id: i32,
21 pub voters: Vec<Voter>,
23 pub granting_voters: Vec<Voter>,
25 pub _unknown_tagged_fields: Vec<RawTaggedField>,
26}
27impl Default for LeaderChangeMessageData {
28 fn default() -> Self {
29 Self {
30 version: 0_i16,
31 leader_id: 0_i32,
32 voters: Vec::new(),
33 granting_voters: Vec::new(),
34 _unknown_tagged_fields: Vec::new(),
35 }
36 }
37}
38impl LeaderChangeMessageData {
39 pub fn with_version(mut self, value: i16) -> Self {
40 self.version = value;
41 self
42 }
43 pub fn with_leader_id(mut self, value: i32) -> Self {
44 self.leader_id = value;
45 self
46 }
47 pub fn with_voters(mut self, value: Vec<Voter>) -> Self {
48 self.voters = value;
49 self
50 }
51 pub fn with_granting_voters(mut self, value: Vec<Voter>) -> Self {
52 self.granting_voters = value;
53 self
54 }
55 pub fn read(buf: &mut Bytes, version: i16) -> Result<Self> {
56 let version_;
57 let leader_id;
58 let voters;
59 let granting_voters;
60 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
61 version_ = read_i16(buf)?;
62 leader_id = read_i32(buf)?;
63 voters = {
64 let len = read_compact_array_length(buf)?;
65 let mut arr = Vec::with_capacity(array_read_capacity(len, (buf).len()));
66 for _ in 0..len {
67 arr.push(Voter::read(buf, version)?);
68 }
69 arr
70 };
71 granting_voters = {
72 let len = read_compact_array_length(buf)?;
73 let mut arr = Vec::with_capacity(array_read_capacity(len, (buf).len()));
74 for _ in 0..len {
75 arr.push(Voter::read(buf, version)?);
76 }
77 arr
78 };
79 let tagged_fields = read_tagged_fields(buf)?;
80 for field in &tagged_fields {
81 match field.tag {
82 _ => {
83 _unknown_tagged_fields.push(field.clone());
84 },
85 }
86 }
87 Ok(Self {
88 version: version_,
89 leader_id,
90 voters,
91 granting_voters,
92 _unknown_tagged_fields,
93 })
94 }
95 pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
96 write_i16(buf, self.version);
97 write_i32(buf, self.leader_id);
98 write_compact_array_length(buf, self.voters.len() as i32);
99 for el in &self.voters {
100 el.write(buf, version)?;
101 }
102 write_compact_array_length(buf, self.granting_voters.len() as i32);
103 for el in &self.granting_voters {
104 el.write(buf, version)?;
105 }
106 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
107 all_tags.sort_by_key(|f| f.tag);
108 write_tagged_fields(buf, &all_tags)?;
109 Ok(())
110 }
111 pub fn encoded_len(&self, version: i16) -> Result<usize> {
112 let mut len: usize = 0;
113 len += 2;
114 len += 4;
115 len += compact_array_length_len(self.voters.len() as i32);
116 for el in &self.voters {
117 len += el.encoded_len(version)?;
118 }
119 len += compact_array_length_len(self.granting_voters.len() as i32);
120 for el in &self.granting_voters {
121 len += el.encoded_len(version)?;
122 }
123 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
124 all_tags.sort_by_key(|f| f.tag);
125 len += tagged_fields_len(&all_tags)?;
126 Ok(len)
127 }
128}
129#[derive(Debug, Clone, PartialEq)]
130pub struct Voter {
131 pub voter_id: i32,
133 pub voter_directory_id: KafkaUuid,
135 pub _unknown_tagged_fields: Vec<RawTaggedField>,
136}
137impl Default for Voter {
138 fn default() -> Self {
139 Self {
140 voter_id: 0_i32,
141 voter_directory_id: KafkaUuid::ZERO,
142 _unknown_tagged_fields: Vec::new(),
143 }
144 }
145}
146impl Voter {
147 pub fn with_voter_id(mut self, value: i32) -> Self {
148 self.voter_id = value;
149 self
150 }
151 pub fn with_voter_directory_id(mut self, value: KafkaUuid) -> Self {
152 self.voter_directory_id = value;
153 self
154 }
155 pub fn read(buf: &mut Bytes, version: i16) -> Result<Self> {
156 let voter_id;
157 let mut voter_directory_id = KafkaUuid::ZERO;
158 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
159 voter_id = read_i32(buf)?;
160 if version >= 1 {
161 voter_directory_id = read_uuid(buf)?;
162 }
163 let tagged_fields = read_tagged_fields(buf)?;
164 for field in &tagged_fields {
165 match field.tag {
166 _ => {
167 _unknown_tagged_fields.push(field.clone());
168 },
169 }
170 }
171 Ok(Self {
172 voter_id,
173 voter_directory_id,
174 _unknown_tagged_fields,
175 })
176 }
177 pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
178 write_i32(buf, self.voter_id);
179 if version >= 1 {
180 write_uuid(buf, &self.voter_directory_id);
181 }
182 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
183 all_tags.sort_by_key(|f| f.tag);
184 write_tagged_fields(buf, &all_tags)?;
185 Ok(())
186 }
187 pub fn encoded_len(&self, version: i16) -> Result<usize> {
188 let mut len: usize = 0;
189 len += 4;
190 if version >= 1 {
191 len += 16;
192 }
193 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
194 all_tags.sort_by_key(|f| f.tag);
195 len += tagged_fields_len(&all_tags)?;
196 Ok(len)
197 }
198}