sea-orm/src/query/traits.rs
2021-07-17 22:03:41 +08:00

25 lines
751 B
Rust

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()),
)
}
}