tank_core/expression/
op_precedence.rs

1use crate::{Expression, Value, writer::SqlWriter};
2
3pub trait OpPrecedence {
4    fn precedence(&self, writer: &dyn SqlWriter) -> i32;
5}
6
7impl<T: OpPrecedence> OpPrecedence for &T {
8    fn precedence(&self, writer: &dyn SqlWriter) -> i32 {
9        (*self).precedence(writer)
10    }
11}
12
13impl OpPrecedence for &dyn Expression {
14    fn precedence(&self, writer: &dyn SqlWriter) -> i32 {
15        (*self).precedence(writer)
16    }
17}
18
19impl OpPrecedence for () {
20    fn precedence(&self, _writer: &dyn SqlWriter) -> i32 {
21        1_000_000_000
22    }
23}
24
25impl OpPrecedence for bool {
26    fn precedence(&self, _writer: &dyn SqlWriter) -> i32 {
27        0
28    }
29}
30
31impl OpPrecedence for Value {
32    fn precedence(&self, _writer: &dyn SqlWriter) -> i32 {
33        0
34    }
35}