use serde::{Deserialize, Serialize};
use super::time::{DateTimeExpr, Timeframe};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DataRef {
pub index: DataIndex,
pub timeframe: Option<Timeframe>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DataDateTimeRef {
pub datetime: DateTimeExpr,
pub timezone: Option<String>,
pub timeframe: Option<Timeframe>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum DataIndex {
Single(i32),
Range(i32, i32),
Expression(Box<super::expressions::Expr>),
ExpressionRange(Box<super::expressions::Expr>, Box<super::expressions::Expr>),
}