use crate::{DbBackend, Statement}; use sea_query::QueryStatementBuilder; pub trait QueryTrait { type QueryStatement: QueryStatementBuilder; /// Get a mutable ref to the query builder fn query(&mut self) -> &mut Self::QueryStatement; /// Get an immutable ref to the query builder fn as_query(&self) -> &Self::QueryStatement; /// Take ownership of the query builder fn into_query(self) -> Self::QueryStatement; /// Build the query as [`Statement`] fn build(&self, db_backend: DbBackend) -> Statement { let query_builder = db_backend.get_query_builder(); Statement::from_string_values_tuple( db_backend, self.as_query().build_any(query_builder.as_ref()), ) } }