Skip to main content

variable_core/
ast.rs

1use crate::lexer::Span;
2
3#[derive(Debug, Clone, PartialEq)]
4pub struct VarFile {
5    pub features: Vec<Feature>,
6}
7
8#[derive(Debug, Clone, PartialEq)]
9pub struct Feature {
10    pub id: u32,
11    pub name: String,
12    pub variables: Vec<Variable>,
13    pub span: Span,
14}
15
16#[derive(Debug, Clone, PartialEq)]
17pub struct Variable {
18    pub id: u32,
19    pub name: String,
20    pub var_type: VarType,
21    pub default: Value,
22    pub span: Span,
23}
24
25#[derive(Debug, Clone, PartialEq)]
26pub enum VarType {
27    Boolean,
28    Number,
29    String,
30}
31
32#[derive(Debug, Clone, PartialEq)]
33pub enum Value {
34    Boolean(bool),
35    Number(f64),
36    String(String),
37}