Skip to main content

kacrab_protocol/generated/
offset_delete_request.rs

1//! Generated from OffsetDeleteRequest.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 OffsetDeleteRequestData {
17    /// The unique group identifier.
18    pub group_id: KafkaString,
19    /// The topics to delete offsets for.
20    pub topics: Vec<OffsetDeleteRequestTopic>,
21    pub _unknown_tagged_fields: Vec<RawTaggedField>,
22}
23impl Default for OffsetDeleteRequestData {
24    fn default() -> Self {
25        Self {
26            group_id: KafkaString::default(),
27            topics: Vec::new(),
28            _unknown_tagged_fields: Vec::new(),
29        }
30    }
31}
32impl OffsetDeleteRequestData {
33    pub fn with_group_id(mut self, value: KafkaString) -> Self {
34        self.group_id = value;
35        self
36    }
37    pub fn with_topics(mut self, value: Vec<OffsetDeleteRequestTopic>) -> Self {
38        self.topics = 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(47, version).into());
44        }
45        let group_id;
46        let topics;
47        let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
48        group_id = read_string(buf)?;
49        topics = {
50            let len = read_array_length(buf)?;
51            let mut arr = Vec::with_capacity(len.max(0) as usize);
52            for _ in 0..len {
53                arr.push(OffsetDeleteRequestTopic::read(buf, version)?);
54            }
55            arr
56        };
57        Ok(Self {
58            group_id,
59            topics,
60            _unknown_tagged_fields,
61        })
62    }
63    pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
64        if version < 0 || version > 0 {
65            return Err(UnsupportedVersion::new(47, version).into());
66        }
67        write_string(buf, &self.group_id)?;
68        write_array_length(buf, self.topics.len() as i32);
69        for el in &self.topics {
70            el.write(buf, version)?;
71        }
72        Ok(())
73    }
74    pub fn encoded_len(&self, version: i16) -> Result<usize> {
75        if version < 0 || version > 0 {
76            return Err(UnsupportedVersion::new(47, version).into());
77        }
78        let mut len: usize = 0;
79        len += string_len(&self.group_id)?;
80        len += array_length_len();
81        for el in &self.topics {
82            len += el.encoded_len(version)?;
83        }
84        Ok(len)
85    }
86}
87#[derive(Debug, Clone, PartialEq)]
88pub struct OffsetDeleteRequestTopic {
89    /// The topic name.
90    pub name: KafkaString,
91    /// Each partition to delete offsets for.
92    pub partitions: Vec<OffsetDeleteRequestPartition>,
93    pub _unknown_tagged_fields: Vec<RawTaggedField>,
94}
95impl Default for OffsetDeleteRequestTopic {
96    fn default() -> Self {
97        Self {
98            name: KafkaString::default(),
99            partitions: Vec::new(),
100            _unknown_tagged_fields: Vec::new(),
101        }
102    }
103}
104impl OffsetDeleteRequestTopic {
105    pub fn with_name(mut self, value: KafkaString) -> Self {
106        self.name = value;
107        self
108    }
109    pub fn with_partitions(mut self, value: Vec<OffsetDeleteRequestPartition>) -> Self {
110        self.partitions = value;
111        self
112    }
113    pub fn read(buf: &mut Bytes, version: i16) -> Result<Self> {
114        let name;
115        let partitions;
116        let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
117        name = read_string(buf)?;
118        partitions = {
119            let len = read_array_length(buf)?;
120            let mut arr = Vec::with_capacity(len.max(0) as usize);
121            for _ in 0..len {
122                arr.push(OffsetDeleteRequestPartition::read(buf, version)?);
123            }
124            arr
125        };
126        Ok(Self {
127            name,
128            partitions,
129            _unknown_tagged_fields,
130        })
131    }
132    pub fn write(&self, buf: &mut BytesMut, version: i16) -> Result<()> {
133        write_string(buf, &self.name)?;
134        write_array_length(buf, self.partitions.len() as i32);
135        for el in &self.partitions {
136            el.write(buf, version)?;
137        }
138        Ok(())
139    }
140    pub fn encoded_len(&self, version: i16) -> Result<usize> {
141        let mut len: usize = 0;
142        len += string_len(&self.name)?;
143        len += array_length_len();
144        for el in &self.partitions {
145            len += el.encoded_len(version)?;
146        }
147        Ok(len)
148    }
149}
150#[derive(Debug, Clone, PartialEq)]
151pub struct OffsetDeleteRequestPartition {
152    /// The partition index.
153    pub partition_index: i32,
154    pub _unknown_tagged_fields: Vec<RawTaggedField>,
155}
156impl Default for OffsetDeleteRequestPartition {
157    fn default() -> Self {
158        Self {
159            partition_index: 0_i32,
160            _unknown_tagged_fields: Vec::new(),
161        }
162    }
163}
164impl OffsetDeleteRequestPartition {
165    pub fn with_partition_index(mut self, value: i32) -> Self {
166        self.partition_index = value;
167        self
168    }
169    pub fn read(buf: &mut Bytes, _version: i16) -> Result<Self> {
170        let partition_index;
171        let mut _unknown_tagged_fields: Vec<RawTaggedField> = Vec::new();
172        partition_index = read_i32(buf)?;
173        Ok(Self {
174            partition_index,
175            _unknown_tagged_fields,
176        })
177    }
178    pub fn write(&self, buf: &mut BytesMut, _version: i16) -> Result<()> {
179        write_i32(buf, self.partition_index);
180        Ok(())
181    }
182    pub fn encoded_len(&self, _version: i16) -> Result<usize> {
183        let mut len: usize = 0;
184        len += 4;
185        Ok(len)
186    }
187}