rocketmq_client_rust/consumer/
pull_result.rs1use rocketmq_common::common::message::message_ext::MessageExt;
16use rocketmq_rust::ArcMut;
17
18use crate::consumer::pull_status::PullStatus;
19
20pub struct PullResult {
21 pub(crate) pull_status: PullStatus,
22 pub(crate) next_begin_offset: u64,
23 pub(crate) min_offset: u64,
24 pub(crate) max_offset: u64,
25 pub(crate) msg_found_list: Option<Vec<ArcMut<MessageExt>>>,
26}
27
28impl PullResult {
29 pub fn new(
30 pull_status: PullStatus,
31 next_begin_offset: u64,
32 min_offset: u64,
33 max_offset: u64,
34 msg_found_list: Option<Vec<ArcMut<MessageExt>>>,
35 ) -> Self {
36 Self {
37 pull_status,
38 next_begin_offset,
39 min_offset,
40 max_offset,
41 msg_found_list,
42 }
43 }
44
45 #[inline]
46 pub fn pull_status(&self) -> &PullStatus {
47 &self.pull_status
48 }
49
50 #[inline]
51 pub fn next_begin_offset(&self) -> u64 {
52 self.next_begin_offset
53 }
54
55 #[inline]
56 pub fn min_offset(&self) -> u64 {
57 self.min_offset
58 }
59
60 #[inline]
61 pub fn max_offset(&self) -> u64 {
62 self.max_offset
63 }
64
65 #[inline]
66 pub fn msg_found_list(&self) -> Option<&Vec<ArcMut<MessageExt>>> {
67 self.msg_found_list.as_ref()
68 }
69
70 #[inline]
71 pub fn set_msg_found_list(&mut self, msg_found_list: Option<Vec<ArcMut<MessageExt>>>) {
72 self.msg_found_list = msg_found_list;
73 }
74}
75
76impl std::fmt::Display for PullResult {
77 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
78 write!(
79 f,
80 "PullResult [pullStatus={}, nextBeginOffset={}, minOffset={}, maxOffset={}, msgFoundList={}]",
81 self.pull_status,
82 self.next_begin_offset,
83 self.min_offset,
84 self.max_offset,
85 self.msg_found_list.as_ref().map_or(0, |v| v.len()),
86 )
87 }
88}
89
90#[cfg(test)]
91mod tests {
92 use super::*;
93
94 #[test]
95 fn pull_result_display_matches_java_to_string_shape() {
96 let pull_result = PullResult::new(PullStatus::NoNewMsg, 12, 3, 45, None);
97
98 assert_eq!(
99 pull_result.to_string(),
100 "PullResult [pullStatus=NO_NEW_MSG, nextBeginOffset=12, minOffset=3, maxOffset=45, msgFoundList=0]"
101 );
102 }
103}