kacrab_protocol/generated/
envelope_response.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 EnvelopeResponseData {
17 pub response_data: Option<Bytes>,
19 pub error_code: i16,
21 pub _unknown_tagged_fields: Vec<RawTaggedField>,
22}
23impl Default for EnvelopeResponseData {
24 fn default() -> Self {
25 Self {
26 response_data: None,
27 error_code: 0_i16,
28 _unknown_tagged_fields: Vec::new(),
29 }
30 }
31}
32impl EnvelopeResponseData {
33 pub fn with_response_data(mut self, value: Option<Bytes>) -> Self {
34 self.response_data = value;
35 self
36 }
37 pub fn with_error_code(mut self, value: i16) -> Self {
38 self.error_code = value;
39 self
40 }
41 pub fn read(buf: &mut Bytes, version: i16) -> Result<Self> {
42 if version < 0 || version > 0 {
43 return Err(UnsupportedVersion::new(58, version).into());
44 }
45 let response_data;
46 let error_code;
47 let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
48 response_data = read_compact_nullable_bytes(buf)?;
49 error_code = read_i16(buf)?;
50 let tagged_fields = read_tagged_fields(buf)?;
51 for field in &tagged_fields {
52 match field.tag {
53 _ => {
54 _unknown_tagged_fields.push(field.clone());
55 },
56 }
57 }
58 Ok(Self {
59 response_data,
60 error_code,
61 _unknown_tagged_fields,
62 })
63 }
64 pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
65 if version < 0 || version > 0 {
66 return Err(UnsupportedVersion::new(58, version).into());
67 }
68 write_compact_nullable_bytes(buf, self.response_data.as_ref().map(|b| b.as_ref()))?;
69 write_i16(buf, self.error_code);
70 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
71 all_tags.sort_by_key(|f| f.tag);
72 write_tagged_fields(buf, &all_tags)?;
73 Ok(())
74 }
75 pub fn encoded_len(&self, version: i16) -> Result<usize> {
76 if version < 0 || version > 0 {
77 return Err(UnsupportedVersion::new(58, version).into());
78 }
79 let mut len: usize = 0;
80 len += compact_nullable_bytes_len(self.response_data.as_ref().map(|b| b.as_ref()))?;
81 len += 2;
82 let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
83 all_tags.sort_by_key(|f| f.tag);
84 len += tagged_fields_len(&all_tags)?;
85 Ok(len)
86 }
87}