prqlc_parser/parser/pr/
ops.rs

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