rsp_rs/parsing/
parsed_query.rs1#[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}