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}