use rocketmq_macros::RequestHeaderCodec;
use serde::Deserialize;
use serde::Serialize;
#[derive(Serialize, Deserialize, Debug, Default, RequestHeaderCodec)]
#[serde(rename_all = "camelCase")]
#[header(
type_id = "rocketmq_protocol::protocol::header::change_invisible_time_response_header::ChangeInvisibleTimeResponseHeader",
java_class = "org.apache.rocketmq.remoting.protocol.header.ChangeInvisibleTimeResponseHeader"
)]
pub struct ChangeInvisibleTimeResponseHeader {
#[header(required, range = "i64")]
pub pop_time: u64,
#[header(required)]
pub revive_qid: i32,
#[header(required)]
pub invisible_time: i64,
}
#[cfg(test)]
mod tests {
use serde_json;
use super::*;
#[test]
fn change_invisible_time_response_header_serialize() {
let header = ChangeInvisibleTimeResponseHeader {
pop_time: 123456789,
revive_qid: 1,
invisible_time: 987654321,
};
let serialized = serde_json::to_string(&header).unwrap();
assert_eq!(
serialized,
r#"{"popTime":123456789,"reviveQid":1,"invisibleTime":987654321}"#
);
}
#[test]
fn change_invisible_time_response_header_deserialize() {
let json = r#"{"popTime":123456789,"reviveQid":1,"invisibleTime":987654321}"#;
let header: ChangeInvisibleTimeResponseHeader = serde_json::from_str(json).unwrap();
assert_eq!(header.pop_time, 123456789);
assert_eq!(header.revive_qid, 1);
assert_eq!(header.invisible_time, 987654321);
}
}