rocketmq_client_rust/consumer/
message_selector.rs

1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18pub struct MessageSelector {
19    type_: String,
20    expression: String,
21}
22
23impl MessageSelector {
24    fn new(type_: &str, expression: &str) -> Self {
25        Self {
26            r#type_: type_.to_string(),
27            expression: expression.to_string(),
28        }
29    }
30
31    pub fn by_sql(sql: &str) -> Self {
32        Self::new("SQL92", sql)
33    }
34
35    pub fn by_tag(tag: &str) -> Self {
36        Self::new("TAG", tag)
37    }
38
39    pub fn get_expression_type(&self) -> &str {
40        &self.type_
41    }
42
43    pub fn get_expression(&self) -> &str {
44        &self.expression
45    }
46}