rocketmq_remoting/protocol/static_topic/
topic_config_and_queue_mapping.rs1use rocketmq_common::common::config::TopicConfig;
18use rocketmq_rust::ArcMut;
19use serde::Deserialize;
20use serde::Serialize;
21
22use crate::protocol::static_topic::topic_queue_mapping_detail::TopicQueueMappingDetail;
23
24#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq)]
25pub struct TopicConfigAndQueueMapping {
26 #[serde(flatten)]
27 pub topic_config: TopicConfig,
28
29 #[serde(rename = "mappingDetail")]
30 pub topic_queue_mapping_detail: Option<ArcMut<TopicQueueMappingDetail>>,
31}
32
33impl TopicConfigAndQueueMapping {
34 pub fn new(
35 topic_config: TopicConfig,
36 topic_queue_mapping_detail: Option<ArcMut<TopicQueueMappingDetail>>,
37 ) -> Self {
38 Self {
39 topic_config,
40 topic_queue_mapping_detail,
41 }
42 }
43
44 pub fn get_topic_queue_mapping_detail(&self) -> Option<&ArcMut<TopicQueueMappingDetail>> {
45 self.topic_queue_mapping_detail.as_ref()
46 }
47
48 pub fn set_topic_queue_mapping_detail(
49 &mut self,
50 topic_queue_mapping_detail: Option<ArcMut<TopicQueueMappingDetail>>,
51 ) {
52 self.topic_queue_mapping_detail = topic_queue_mapping_detail;
53 }
54}