shape_ast/ast/
data_refs.rs1use serde::{Deserialize, Serialize};
4
5use super::time::{DateTimeExpr, Timeframe};
6
7#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
9pub struct DataRef {
10 pub index: DataIndex,
11 pub timeframe: Option<Timeframe>,
13}
14
15#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
17pub struct DataDateTimeRef {
18 pub datetime: DateTimeExpr,
19 pub timezone: Option<String>,
20 pub timeframe: Option<Timeframe>,
21}
22
23#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
24pub enum DataIndex {
25 Single(i32),
27 Range(i32, i32),
29 Expression(Box<super::expressions::Expr>),
31 ExpressionRange(Box<super::expressions::Expr>, Box<super::expressions::Expr>),
33}