prql_ast/expr/
ops.rs

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, // TODO: rename to Pos
20    #[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}