1pub mod column;
4pub mod error;
5pub mod migration;
6pub mod model;
7pub mod paginator;
8pub mod pool;
9pub mod query;
10pub mod relation;
11pub mod schema;
12
13pub use column::{Column, ColumnRef};
14pub use error::{Error, Result};
15pub use migration::MigrationStatus;
16pub use migration::{Migration, MigrationRunner};
17pub use model::{registered_models, Loaded, Model, ModelRegistration};
18pub use paginator::Paginator;
19pub use pool::{connect, Connection, ConnectionManager, Driver, Pool};
20pub use query::QueryBuilder;
21pub use relation::{BelongsTo, HasMany, HasOne, RelationDef, RelationKind};
22pub use schema::{ColumnDef, Schema, Table};
23
24pub use chrono;
25pub use inventory;
26pub use sea_query;
27pub use sea_query_binder;
28pub use sqlx;
29pub use uuid;
30
31#[macro_export]
53macro_rules! scopes {
54 (
55 $trait_name:ident for $model:ty {
56 $(
57 fn $scope:ident ( $q:ident $(, $arg:ident : $arg_ty:ty )* )
58 -> $body:expr
59 );* $(;)?
60 }
61 ) => {
62 pub trait $trait_name {
63 $(
64 fn $scope(self $(, $arg: $arg_ty)*) -> Self;
65 )*
66 }
67
68 impl $trait_name for $crate::QueryBuilder<$model> {
69 $(
70 fn $scope(self $(, $arg: $arg_ty)*) -> Self {
71 let $q = self;
72 $body
73 }
74 )*
75 }
76 };
77}