rocketmq_client_v4/protocols/body/
subscription_data.rs

1use crate::protocols::get_current_time_millis;
2use serde::Serialize;
3
4#[derive(Debug, Serialize, Eq, PartialEq, Hash)]
5#[allow(non_snake_case)]
6pub struct SubscriptionData {
7    //   private boolean classFilterMode = false;
8    //     private String topic;
9    //     private String subString;
10    //     private Set<String> tagsSet = new HashSet<String>();
11    //     private Set<Integer> codeSet = new HashSet<Integer>();
12    //     private long subVersion = System.currentTimeMillis();
13    //     private String expressionType = ExpressionType.TAG;
14    //
15    //     @JSONField(serialize = false)
16    //     private String filterClassSource;
17    pub classFilterMode: bool,
18    pub topic: String,
19    pub subString: String,
20    pub tagsSet: Vec<String>,
21    pub codeSet: Vec<i32>,
22    pub subVersion: i64,
23    pub expressionType: String,
24    pub filterClassSource: String,
25}
26
27impl SubscriptionData {
28    pub fn simple_new(topic: String) -> Self {
29        SubscriptionData {
30            classFilterMode: false,
31            topic,
32            subString: "*".to_string(),
33            tagsSet: vec![],
34            codeSet: vec![],
35            subVersion: get_current_time_millis(),
36            expressionType: "TAG".to_string(),
37            filterClassSource: "".to_string(),
38        }
39    }
40}