sqlx_paginated/paginated_query_as/
database_query_defaults.rs1use crate::QueryParams;
2use serde::Serialize;
3use sqlx::Database;
4
5pub trait DatabaseQueryDefaults: Database {
10 fn build_default_query<'p, T>(params: &'p QueryParams<T>) -> (Vec<String>, Self::Arguments<'p>)
20 where
21 T: Default + Serialize;
22}
23
24#[cfg(feature = "postgres")]
25impl DatabaseQueryDefaults for sqlx::Postgres {
26 fn build_default_query<'p, T>(params: &'p QueryParams<T>) -> (Vec<String>, Self::Arguments<'p>)
27 where
28 T: Default + Serialize,
29 {
30 use crate::paginated_query_as::examples::postgres_examples::build_query_with_safe_defaults;
31 build_query_with_safe_defaults::<T, sqlx::Postgres>(params)
32 }
33}
34
35#[cfg(feature = "sqlite")]
36impl DatabaseQueryDefaults for sqlx::Sqlite {
37 fn build_default_query<'p, T>(params: &'p QueryParams<T>) -> (Vec<String>, Self::Arguments<'p>)
38 where
39 T: Default + Serialize,
40 {
41 use crate::QueryBuilder;
42 QueryBuilder::<T, sqlx::Sqlite>::new()
43 .with_search(params)
44 .with_filters(params)
45 .with_date_range(params)
46 .build()
47 }
48}