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}