kafka_wire_protocol/schema/renew_delegation_token_response/
v2.rs1use std::io::{Read, Result, Write};
4
5use serde::{Deserialize, Serialize};
6#[cfg(test)] use proptest_derive::Arbitrary;
7
8use crate::markers::{ApiMessage, Response};
9use crate::readable_writable::{Readable, Writable};
10use crate::tagged_fields::{RawTaggedField, read_tagged_fields, write_tagged_fields};
11#[cfg(test)] use crate::test_utils::proptest_strategies;
12
13#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
15#[cfg_attr(test, derive(Arbitrary))]
16pub struct RenewDelegationTokenResponse {
17 pub error_code: i16,
19 pub expiry_timestamp_ms: i64,
21 pub throttle_time_ms: i32,
23 #[cfg_attr(test, proptest(strategy = "proptest_strategies::unknown_tagged_fields()"))]
25 pub _unknown_tagged_fields: Vec<RawTaggedField>,
26}
27
28impl ApiMessage for RenewDelegationTokenResponse {
29 fn api_key(&self) -> i16 {
30 39
31 }
32
33 fn version(&self) -> i16 {
34 2
35 }
36}
37
38impl Response for RenewDelegationTokenResponse { }
39
40impl Default for RenewDelegationTokenResponse {
41 fn default() -> Self {
42 RenewDelegationTokenResponse {
43 error_code: 0_i16,
44 expiry_timestamp_ms: 0_i64,
45 throttle_time_ms: 0_i32,
46 _unknown_tagged_fields: Vec::new(),
47 }
48 }
49}
50
51impl RenewDelegationTokenResponse {
52 pub fn new(error_code: i16, expiry_timestamp_ms: i64, throttle_time_ms: i32) -> Self {
53 Self {
54 error_code,
55 expiry_timestamp_ms,
56 throttle_time_ms,
57 _unknown_tagged_fields: vec![],
58 }
59 }
60}
61
62#[cfg(test)]
63mod tests_renew_delegation_token_response_new_and_default {
64 use super::*;
65
66 #[test]
67 fn test() {
68 let d = RenewDelegationTokenResponse::new(
69 0_i16,
70 0_i64,
71 0_i32,
72 );
73 assert_eq!(d, RenewDelegationTokenResponse::default());
74 }
75}
76
77impl Readable for RenewDelegationTokenResponse {
78 fn read(#[allow(unused)] input: &mut impl Read) -> Result<Self> {
79 let error_code = i16::read(input)?;
80 let expiry_timestamp_ms = i64::read(input)?;
81 let throttle_time_ms = i32::read(input)?;
82 let tagged_fields_callback = |tag: i32, _: &[u8]| {
83 match tag {
84 _ => Ok(false)
85 }
86 };
87 let _unknown_tagged_fields = read_tagged_fields(input, tagged_fields_callback)?;
88 Ok(RenewDelegationTokenResponse {
89 error_code, expiry_timestamp_ms, throttle_time_ms, _unknown_tagged_fields
90 })
91 }
92}
93
94impl Writable for RenewDelegationTokenResponse {
95 fn write(&self, #[allow(unused)] output: &mut impl Write) -> Result<()> {
96 self.error_code.write(output)?;
97 self.expiry_timestamp_ms.write(output)?;
98 self.throttle_time_ms.write(output)?;
99 write_tagged_fields(output, &[], &self._unknown_tagged_fields)?;
100 Ok(())
101 }
102}
103
104#[cfg(test)]
105mod tests {
106 use super::*;
107 use proptest::prelude::*;
108
109 #[test]
110 fn test_java_default() {
111 crate::test_utils::test_java_default::<RenewDelegationTokenResponse>("RenewDelegationTokenResponse", 2);
112 }
113
114 proptest! {
115 #[test]
116 fn test_serde(data: RenewDelegationTokenResponse) {
117 crate::test_utils::test_serde(&data)?;
118 }
119 }
120
121 proptest! {
122 #[test]
123 fn test_java_arbitrary(data: RenewDelegationTokenResponse) {
124 crate::test_utils::test_java_arbitrary(&data, "RenewDelegationTokenResponse", 2);
125 }
126 }
127}