tank_core/expression/
op_precedence.rs1use 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}