rsp_rs/parsing/
parsed_query.rs

1#[derive(Debug, Clone)]
2pub enum Operator {
3    RStream,
4    IStream,
5    DStream,
6}
7
8#[derive(Debug, Clone)]
9pub struct R2S {
10    pub operator: Operator,
11    pub name: String,
12}
13
14#[derive(Debug, Clone)]
15pub struct WindowDefinition {
16    pub window_name: String,
17    pub stream_name: String,
18    pub width: i64,
19    pub slide: i64,
20}
21
22#[derive(Debug, Clone)]
23pub struct ParsedQuery {
24    pub sparql_query: String,
25    pub r2s: R2S,
26    pub s2r: Vec<WindowDefinition>,
27}
28
29impl ParsedQuery {
30    pub fn new(sparql_query: String) -> Self {
31        Self {
32            sparql_query,
33            r2s: R2S {
34                operator: Operator::RStream,
35                name: "undefined".to_string(),
36            },
37            s2r: Vec::new(),
38        }
39    }
40
41    pub fn set_sparql_query(&mut self, query: String) {
42        self.sparql_query = query;
43    }
44
45    pub fn set_r2s(&mut self, operator: Operator, name: String) {
46        self.r2s = R2S { operator, name };
47    }
48
49    pub fn add_s2r_window(&mut self, window: WindowDefinition) {
50        self.s2r.push(window);
51    }
52}