-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathast.rs
More file actions
46 lines (39 loc) · 947 Bytes
/
ast.rs
File metadata and controls
46 lines (39 loc) · 947 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
use std::collections::HashMap;
#[derive(Debug, Clone, PartialEq)]
pub enum Arg {
/// Simple constant
Const { text: String },
/// Variable available at runtime
Var { name: String },
/// Helper like random_path
Dynamic { name: String, args: Vec<Arg> },
}
#[derive(Debug, Clone, PartialEq)]
pub enum Instruction {
Task { name: Arg, args: Vec<Arg> },
Open { path: Arg },
Debug { text: Arg },
Ping { server: Arg },
}
#[derive(Debug, Clone, PartialEq)]
pub enum MachineInstruction {
Server { port: u16 },
Profile { target: String },
Path { value: String },
}
#[derive(Debug, Clone, PartialEq)]
pub enum Dist {
Exp { rate: f64 },
}
#[derive(Debug, Clone)]
pub enum Node {
Machine {
m_instructions: Vec<MachineInstruction>,
},
Work {
name: String,
args: HashMap<String, String>,
instructions: Vec<Instruction>,
dist: Option<Dist>,
},
}