1pub mod ast;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, Hash)]
6pub enum Type {
7 TInline,
8 TOption(Box<Type>),
9 TBlock,
10 TArray(Box<Type>),
11 TInlineCmd(String),
12 TBlockCmd(String),
13 TAST,
14}
15
16#[derive(Debug, Serialize, Deserialize, Clone)]
17pub struct MetaData {
18 pub command_name: String,
19 pub call_name: String,
20 pub argument_types: Vec<(String, Type)>,
21 pub return_type: Type,
22}
23
24#[derive(Debug, Serialize, Deserialize, Clone)]
25pub enum Value {
26 Text(String),
27 TextArray(Vec<String>),
28 TextOption(Option<String>),
29}