#![deny(warnings, missing_debug_implementations, missing_copy_implementations)]
#![cfg_attr(feature = "unstable", feature(specialization))]
#[macro_use]
mod macros;
#[cfg(test)]
pub mod test_helpers;
pub mod associations;
pub mod backend;
pub mod connection;
#[macro_use]
pub mod expression;
#[doc(hidden)]
pub mod persistable;
pub mod query_builder;
#[macro_use]
pub mod types;
#[cfg(feature = "postgres")]
pub mod pg;
#[cfg(feature = "sqlite")]
pub mod sqlite;
pub mod migrations;
mod query_dsl;
pub mod query_source;
pub mod result;
#[doc(hidden)]
pub mod row;
pub mod helper_types {
use super::query_dsl::*;
use super::expression::helper_types::Eq;
pub type Select<Source, Selection, Type = <Selection as super::Expression>::SqlType> =
<Source as SelectDsl<Selection, Type>>::Output;
pub type Filter<Source, Predicate> =
<Source as FilterDsl<Predicate>>::Output;
pub type FindBy<Source, Column, Value> =
Filter<Source, Eq<Column, Value>>;
pub type Find<Source, PK> = <Source as FindDsl<PK>>::Output;
pub type Order<Source, Ordering> =
<Source as OrderDsl<Ordering>>::Output;
pub type Limit<Source> = <Source as LimitDsl>::Output;
pub type Offset<Source> = <Source as OffsetDsl>::Output;
pub type With<'a, Source, Other> = <Source as WithDsl<'a, Other>>::Output;
use super::associations::HasTable;
use super::query_builder::{UpdateStatement, IntoUpdateTarget, AsChangeset};
pub type Update<Target, Changes> = UpdateStatement<
<Target as HasTable>::Table,
<Target as IntoUpdateTarget>::WhereClause,
<Changes as AsChangeset>::Changeset,
>;
}
pub mod prelude {
pub use associations::GroupedBy;
pub use connection::Connection;
pub use expression::{Expression, SelectableExpression, BoxableExpression};
pub use expression::expression_methods::*;
#[doc(inline)]
pub use persistable::Insertable;
pub use query_dsl::*;
pub use query_source::{QuerySource, Queryable, Table, Column, JoinTo};
pub use result::{QueryResult, TransactionError, TransactionResult, ConnectionError, ConnectionResult, OptionalExtension};
}
pub use prelude::*;
#[doc(inline)]
pub use query_builder::functions::{insert, update, delete, select};
#[cfg(feature = "sqlite")]
pub use sqlite::query_builder::functions::*;
pub use result::Error::NotFound;
#[doc(inline)]
pub use types::structs::data_types;