Skip to main content

kacrab_protocol/generated/
describe_cluster_request.rs

1//! Generated from DescribeClusterRequest.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 DescribeClusterRequestData {
17    /// Whether to include cluster authorized operations.
18    pub include_cluster_authorized_operations: bool,
19    /// The endpoint type to describe. 1=brokers, 2=controllers.
20    pub endpoint_type: i8,
21    /// Whether to include fenced brokers when listing brokers.
22    pub include_fenced_brokers: bool,
23    pub _unknown_tagged_fields: Vec<RawTaggedField>,
24}
25impl Default for DescribeClusterRequestData {
26    fn default() -> Self {
27        Self {
28            include_cluster_authorized_operations: false,
29            endpoint_type: 1i8,
30            include_fenced_brokers: false,
31            _unknown_tagged_fields: Vec::new(),
32        }
33    }
34}
35impl DescribeClusterRequestData {
36    pub fn with_include_cluster_authorized_operations(mut self, value: bool) -> Self {
37        self.include_cluster_authorized_operations = value;
38        self
39    }
40    pub fn with_endpoint_type(mut self, value: i8) -> Self {
41        self.endpoint_type = value;
42        self
43    }
44    pub fn with_include_fenced_brokers(mut self, value: bool) -> Self {
45        self.include_fenced_brokers = value;
46        self
47    }
48    pub fn read(buf: &mut Bytes, version: i16) -> Result<Self> {
49        if version < 0 || version > 2 {
50            return Err(UnsupportedVersion::new(60, version).into());
51        }
52        let include_cluster_authorized_operations;
53        let mut endpoint_type = 1i8;
54        let mut include_fenced_brokers = false;
55        let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
56        include_cluster_authorized_operations = read_bool(buf)?;
57        if version >= 1 {
58            endpoint_type = read_i8(buf)?;
59        }
60        if version >= 2 {
61            include_fenced_brokers = read_bool(buf)?;
62        }
63        let tagged_fields = read_tagged_fields(buf)?;
64        for field in &tagged_fields {
65            match field.tag {
66                _ => {
67                    _unknown_tagged_fields.push(field.clone());
68                },
69            }
70        }
71        Ok(Self {
72            include_cluster_authorized_operations,
73            endpoint_type,
74            include_fenced_brokers,
75            _unknown_tagged_fields,
76        })
77    }
78    pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
79        if version < 0 || version > 2 {
80            return Err(UnsupportedVersion::new(60, version).into());
81        }
82        write_bool(buf, self.include_cluster_authorized_operations);
83        if version >= 1 {
84            write_i8(buf, self.endpoint_type);
85        } else if self.endpoint_type != 1i8 {
86            return Err(UnsupportedFieldVersion::new(60, "endpoint_type", version).into());
87        }
88        if version >= 2 {
89            write_bool(buf, self.include_fenced_brokers);
90        } else if self.include_fenced_brokers != false {
91            return Err(UnsupportedFieldVersion::new(60, "include_fenced_brokers", version).into());
92        }
93        let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
94        all_tags.sort_by_key(|f| f.tag);
95        write_tagged_fields(buf, &all_tags)?;
96        Ok(())
97    }
98    pub fn encoded_len(&self, version: i16) -> Result<usize> {
99        if version < 0 || version > 2 {
100            return Err(UnsupportedVersion::new(60, version).into());
101        }
102        let mut len: usize = 0;
103        len += 1;
104        if version >= 1 {
105            len += 1;
106        } else if self.endpoint_type != 1i8 {
107            return Err(UnsupportedFieldVersion::new(60, "endpoint_type", version).into());
108        }
109        if version >= 2 {
110            len += 1;
111        } else if self.include_fenced_brokers != false {
112            return Err(UnsupportedFieldVersion::new(60, "include_fenced_brokers", version).into());
113        }
114        let mut all_tags: Vec<RawTaggedField> = self._unknown_tagged_fields.clone();
115        all_tags.sort_by_key(|f| f.tag);
116        len += tagged_fields_len(&all_tags)?;
117        Ok(len)
118    }
119}