1use serde::{Deserialize, Serialize};
2
3#[derive(
4 Debug,
5 PartialEq,
6 Eq,
7 Clone,
8 Copy,
9 Hash,
10 Serialize,
11 Deserialize,
12 strum::Display,
13 strum::EnumString,
14)]
15pub enum UnOp {
16 #[strum(to_string = "-")]
17 Neg,
18 #[strum(to_string = "+")]
19 Add, #[strum(to_string = "!")]
21 Not,
22 #[strum(to_string = "==")]
23 EqSelf,
24}
25
26#[derive(
27 Debug,
28 PartialEq,
29 Eq,
30 Clone,
31 Copy,
32 Hash,
33 Serialize,
34 Deserialize,
35 strum::Display,
36 strum::EnumString,
37)]
38pub enum BinOp {
39 #[strum(to_string = "*")]
40 Mul,
41 #[strum(to_string = "//")]
42 DivInt,
43 #[strum(to_string = "/")]
44 DivFloat,
45 #[strum(to_string = "%")]
46 Mod,
47 #[strum(to_string = "+")]
48 Add,
49 #[strum(to_string = "-")]
50 Sub,
51 #[strum(to_string = "==")]
52 Eq,
53 #[strum(to_string = "!=")]
54 Ne,
55 #[strum(to_string = ">")]
56 Gt,
57 #[strum(to_string = "<")]
58 Lt,
59 #[strum(to_string = ">=")]
60 Gte,
61 #[strum(to_string = "<=")]
62 Lte,
63 #[strum(to_string = "~=")]
64 RegexSearch,
65 #[strum(to_string = "&&")]
66 And,
67 #[strum(to_string = "||")]
68 Or,
69 #[strum(to_string = "??")]
70 Coalesce,
71}