kafka_wire_protocol/schema/heartbeat_request/
v1.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::markers::{ApiMessage, Request};
9use crate::readable_writable::{Readable, Writable};
10#[cfg(test)] use crate::test_utils::proptest_strategies;
11
12/// HeartbeatRequest, version 1.
13#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
14#[cfg_attr(test, derive(Arbitrary))]
15pub struct HeartbeatRequest {
16    /// The group id.
17    #[cfg_attr(test, proptest(strategy = "proptest_strategies::string()"))]
18    pub group_id: String,
19    /// The generation of the group.
20    pub generation_id: i32,
21    /// The member ID.
22    #[cfg_attr(test, proptest(strategy = "proptest_strategies::string()"))]
23    pub member_id: String,
24}
25
26impl ApiMessage for HeartbeatRequest {
27    fn api_key(&self) -> i16 {
28        12
29    }
30    
31    fn version(&self) -> i16 {
32        1
33    }
34}
35
36impl Request for HeartbeatRequest { }
37
38impl Default for HeartbeatRequest {
39    fn default() -> Self {
40        HeartbeatRequest {
41            group_id: String::from(""),
42            generation_id: 0_i32,
43            member_id: String::from(""),
44        }
45    }
46}
47
48impl HeartbeatRequest {
49    pub fn new<S1: AsRef<str>, S2: AsRef<str>>(group_id: S1, generation_id: i32, member_id: S2) -> Self {
50        Self {
51            group_id: group_id.as_ref().to_string(),
52            generation_id,
53            member_id: member_id.as_ref().to_string(),
54        }
55    }
56}
57
58#[cfg(test)]
59mod tests_heartbeat_request_new_and_default {
60    use super::*;
61    
62    #[test]
63    fn test() {
64        let d = HeartbeatRequest::new(
65            String::from(""),
66            0_i32,
67            String::from(""),
68        );
69        assert_eq!(d, HeartbeatRequest::default());
70    }
71}
72
73impl Readable for HeartbeatRequest {
74    fn read(#[allow(unused)] input: &mut impl Read) -> Result<Self> {
75        let group_id = String::read_ext(input, "group_id", false)?;
76        let generation_id = i32::read(input)?;
77        let member_id = String::read_ext(input, "member_id", false)?;
78        Ok(HeartbeatRequest {
79            group_id, generation_id, member_id
80        })
81    }
82}
83
84impl Writable for HeartbeatRequest {
85    fn write(&self, #[allow(unused)] output: &mut impl Write) -> Result<()> {
86        self.group_id.write_ext(output, "self.group_id", false)?;
87        self.generation_id.write(output)?;
88        self.member_id.write_ext(output, "self.member_id", false)?;
89        Ok(())
90    }
91}
92
93#[cfg(test)]
94mod tests {
95    use super::*;
96    use proptest::prelude::*;
97    
98    #[test]
99    fn test_java_default() {
100        crate::test_utils::test_java_default::<HeartbeatRequest>("HeartbeatRequest", 1);
101    }
102    
103    proptest! {
104        #[test]
105        fn test_serde(data: HeartbeatRequest) {
106            crate::test_utils::test_serde(&data)?;
107        }
108    }
109    
110    proptest! {
111        #[test]
112        fn test_java_arbitrary(data: HeartbeatRequest) {
113            crate::test_utils::test_java_arbitrary(&data, "HeartbeatRequest", 1);
114        }
115    }
116}