1use crate::SqlxValues;
2use sea_query::{QueryBuilder, query::*};
3
4pub trait SqlxBinder {
5 fn build_sqlx<T>(&self, query_builder: T) -> (String, SqlxValues)
6 where
7 T: QueryBuilder;
8}
9
10macro_rules! impl_sqlx_binder {
11 ($l:ident) => {
12 impl SqlxBinder for $l {
13 fn build_sqlx<T>(&self, query_builder: T) -> (String, SqlxValues)
14 where
15 T: QueryBuilder,
16 {
17 let (query, values) = self.build(query_builder);
18 (query, SqlxValues(values))
19 }
20 }
21 };
22}
23
24impl_sqlx_binder!(SelectStatement);
25impl_sqlx_binder!(UpdateStatement);
26impl_sqlx_binder!(InsertStatement);
27impl_sqlx_binder!(DeleteStatement);
28impl_sqlx_binder!(WithQuery);