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 name: String,
11    pub variables: Vec<Variable>,
12    pub span: Span,
13}
14
15#[derive(Debug, Clone, PartialEq)]
16pub struct Variable {
17    pub name: String,
18    pub var_type: VarType,
19    pub default: Value,
20    pub span: Span,
21}
22
23#[derive(Debug, Clone, PartialEq)]
24pub enum VarType {
25    Boolean,
26    Number,
27    String,
28}
29
30#[derive(Debug, Clone, PartialEq)]
31pub enum Value {
32    Boolean(bool),
33    Number(f64),
34    String(String),
35}