Skip to main content

easy_sql/markers/driver/
operators.rs

1//! Marker traits for supported SQL operators.
2//!
3//! These traits gate operator usage inside [`query!`](crate::query) and
4//! [`query_lazy!`](crate::query_lazy). Custom drivers implement the markers to describe which
5//! operators their backend accepts.
6//!
7//! See [`supported`](crate::supported) module
8
9use easy_sql_macros::define_supports_operator_trait;
10
11define_supports_operator_trait!(SupportsAnd, "AND");
12define_supports_operator_trait!(SupportsOr, "OR");
13define_supports_operator_trait!(SupportsAdd, "+");
14define_supports_operator_trait!(SupportsSub, "-");
15define_supports_operator_trait!(SupportsMul, "*");
16define_supports_operator_trait!(SupportsDiv, "/");
17define_supports_operator_trait!(SupportsModOperator, "%");
18define_supports_operator_trait!(SupportsConcatOperator, "||");
19define_supports_operator_trait!(SupportsJsonExtract, "->");
20define_supports_operator_trait!(SupportsJsonExtractText, "->>");
21define_supports_operator_trait!(SupportsBitAnd, "&");
22define_supports_operator_trait!(SupportsBitOr, "|");
23define_supports_operator_trait!(SupportsBitShiftLeft, "<<");
24define_supports_operator_trait!(SupportsBitShiftRight, ">>");
25define_supports_operator_trait!(SupportsEqual, "=");
26define_supports_operator_trait!(SupportsNotEqual, "!=");
27define_supports_operator_trait!(SupportsGreaterThan, ">");
28define_supports_operator_trait!(SupportsGreaterThanOrEqual, ">=");
29define_supports_operator_trait!(SupportsLessThan, "<");
30define_supports_operator_trait!(SupportsLessThanOrEqual, "<=");
31define_supports_operator_trait!(SupportsLike, "LIKE");
32define_supports_operator_trait!(SupportsIsNull, "IS NULL");
33define_supports_operator_trait!(SupportsIsNotNull, "IS NOT NULL");
34define_supports_operator_trait!(SupportsIn, "IN");
35define_supports_operator_trait!(SupportsBetween, "BETWEEN");