Skip to main content

sea_query_sqlx/
sqlx.rs

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);