tank_core/expression/
op_precedence.rs1use crate::{Expression, Value, writer::SqlWriter};
2
3pub trait OpPrecedence {
5 fn precedence(&self, writer: &dyn SqlWriter) -> i32;
7}
8
9impl<T: OpPrecedence> OpPrecedence for &T {
10 fn precedence(&self, writer: &dyn SqlWriter) -> i32 {
11 (*self).precedence(writer)
12 }
13}
14
15impl OpPrecedence for &dyn Expression {
16 fn precedence(&self, writer: &dyn SqlWriter) -> i32 {
17 (*self).precedence(writer)
18 }
19}
20
21impl OpPrecedence for () {
22 fn precedence(&self, _writer: &dyn SqlWriter) -> i32 {
23 1_000_000_000
24 }
25}
26
27impl OpPrecedence for bool {
28 fn precedence(&self, _writer: &dyn SqlWriter) -> i32 {
29 0
30 }
31}
32
33impl OpPrecedence for &'static str {
34 fn precedence(&self, _writer: &dyn SqlWriter) -> i32 {
35 0
36 }
37}
38
39impl OpPrecedence for Value {
40 fn precedence(&self, _writer: &dyn SqlWriter) -> i32 {
41 0
42 }
43}