pub mod column;
pub mod error;
pub mod migration;
pub mod model;
pub mod paginator;
pub mod pool;
pub mod query;
pub mod relation;
pub mod schema;
pub use column::{Column, ColumnRef};
pub use error::{Error, Result};
pub use migration::MigrationStatus;
pub use migration::{Migration, MigrationRunner};
pub use model::{registered_models, Loaded, Model, ModelRegistration};
pub use paginator::Paginator;
pub use pool::{connect, Connection, ConnectionManager, Driver, Pool};
pub use query::QueryBuilder;
pub use relation::{BelongsTo, HasMany, HasOne, RelationDef, RelationKind};
pub use schema::{ColumnDef, Schema, Table};
pub use chrono;
pub use inventory;
pub use sea_query;
pub use sea_query_binder;
pub use sqlx;
pub use uuid;
#[macro_export]
macro_rules! scopes {
(
$trait_name:ident for $model:ty {
$(
fn $scope:ident ( $q:ident $(, $arg:ident : $arg_ty:ty )* )
-> $body:expr
);* $(;)?
}
) => {
pub trait $trait_name {
$(
fn $scope(self $(, $arg: $arg_ty)*) -> Self;
)*
}
impl $trait_name for $crate::QueryBuilder<$model> {
$(
fn $scope(self $(, $arg: $arg_ty)*) -> Self {
let $q = self;
$body
}
)*
}
};
}