kafka_wire_protocol/schema/list_groups_request/
v4.rs

1// This file was generated. Do not edit.
2
3use std::io::{Read, Result, Write};
4
5use serde::{Deserialize, Serialize};
6#[cfg(test)] use proptest_derive::Arbitrary;
7
8use crate::arrays::{read_array, write_array};
9use crate::markers::{ApiMessage, Request};
10use crate::readable_writable::{Readable, Writable};
11use crate::tagged_fields::{RawTaggedField, read_tagged_fields, write_tagged_fields};
12#[cfg(test)] use crate::test_utils::proptest_strategies;
13
14/// ListGroupsRequest, version 4.
15#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
16#[cfg_attr(test, derive(Arbitrary))]
17pub struct ListGroupsRequest {
18    /// The states of the groups we want to list. If empty, all groups are returned with their state.
19    #[cfg_attr(test, proptest(strategy = "proptest_strategies::vec()"))]
20    pub states_filter: Vec<String>,
21    /// Unknown tagged fields.
22    #[cfg_attr(test, proptest(strategy = "proptest_strategies::unknown_tagged_fields()"))]
23    pub _unknown_tagged_fields: Vec<RawTaggedField>,
24}
25
26impl ApiMessage for ListGroupsRequest {
27    fn api_key(&self) -> i16 {
28        16
29    }
30    
31    fn version(&self) -> i16 {
32        4
33    }
34}
35
36impl Request for ListGroupsRequest { }
37
38impl Default for ListGroupsRequest {
39    fn default() -> Self {
40        ListGroupsRequest {
41            states_filter: Vec::<String>::new(),
42            _unknown_tagged_fields: Vec::new(),
43        }
44    }
45}
46
47impl ListGroupsRequest {
48    pub fn new(states_filter: Vec<String>) -> Self {
49        Self {
50            states_filter,
51            _unknown_tagged_fields: vec![],
52        }
53    }
54}
55
56#[cfg(test)]
57mod tests_list_groups_request_new_and_default {
58    use super::*;
59    
60    #[test]
61    fn test() {
62        let d = ListGroupsRequest::new(
63            Vec::<String>::new(),
64        );
65        assert_eq!(d, ListGroupsRequest::default());
66    }
67}
68
69impl Readable for ListGroupsRequest {
70    fn read(#[allow(unused)] input: &mut impl Read) -> Result<Self> {
71        let states_filter = read_array::<String>(input, "states_filter", true)?;
72        let tagged_fields_callback = |tag: i32, _: &[u8]| {
73            match tag {
74                _ => Ok(false)
75            }
76        };
77        let _unknown_tagged_fields = read_tagged_fields(input, tagged_fields_callback)?;
78        Ok(ListGroupsRequest {
79            states_filter, _unknown_tagged_fields
80        })
81    }
82}
83
84impl Writable for ListGroupsRequest {
85    fn write(&self, #[allow(unused)] output: &mut impl Write) -> Result<()> {
86        write_array(output, "self.states_filter", &self.states_filter, true)?;
87        write_tagged_fields(output, &[], &self._unknown_tagged_fields)?;
88        Ok(())
89    }
90}
91
92#[cfg(test)]
93mod tests {
94    use super::*;
95    use proptest::prelude::*;
96    
97    #[test]
98    fn test_java_default() {
99        crate::test_utils::test_java_default::<ListGroupsRequest>("ListGroupsRequest", 4);
100    }
101    
102    proptest! {
103        #[test]
104        fn test_serde(data: ListGroupsRequest) {
105            crate::test_utils::test_serde(&data)?;
106        }
107    }
108    
109    proptest! {
110        #[test]
111        fn test_java_arbitrary(data: ListGroupsRequest) {
112            crate::test_utils::test_java_arbitrary(&data, "ListGroupsRequest", 4);
113        }
114    }
115}