Skip to main content

kacrab_protocol/generated/
envelope_response.rs

1//! Generated from EnvelopeResponse.json - DO NOT EDIT
2#![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    /// The embedded response header and data.
18    pub response_data: Option<Bytes>,
19    /// The error code, or 0 if there was no error.
20    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}