protospec_build/ast/expression/
binary.rs

1use super::*;
2
3#[derive(Clone, Serialize, Deserialize)]
4pub struct BinaryExpression {
5    pub op: BinaryOp,
6    pub left: Box<Expression>,
7    pub right: Box<Expression>,
8    pub span: Span,
9}
10impl_node!(BinaryExpression);
11
12#[derive(Clone, Copy, Serialize, Deserialize, PartialEq, Debug)]
13pub enum BinaryOp {
14    Lt,
15    Gt,
16    Lte,
17    Gte,
18    Eq,
19    Ne,
20    Or,
21    And,
22    BitOr,
23    BitAnd,
24    BitXor,
25    Shr,
26    Shl,
27    ShrSigned,
28    Add,
29    Sub,
30    Mul,
31    Div,
32    Mod,
33    Elvis,
34}