rok-fluent 0.4.1

Eloquent-inspired async ORM for Rust (PostgreSQL, MySQL, SQLite)
//! Drizzle-style typed query DSL.
//!
//! Enable with `features = ["query"]` plus a database backend (`"postgres"`,
//! `"sqlite"`, or `"mysql"`).
//!
//! # Quick start
//!
//! ```rust,ignore
//! use rok_fluent::dsl::db;
//!
//! // SELECT * FROM users WHERE id = 1
//! let user = db::select()
//!     .from(users::table)
//!     .where_(users::id.eq(1_i64))
//!     .fetch_optional(&pool)
//!     .await?;
//!
//! // INSERT INTO posts (title, user_id) VALUES (?, ?) RETURNING *
//! let post = db::insert_into(posts::table)
//!     .values([
//!         (posts::title,   "Hello world"),
//!         (posts::user_id, 42_i64),
//!     ])
//!     .returning()
//!     .fetch_one(&pool)
//!     .await?;
//! ```
//!
//! Tables and typed columns are generated by `#[derive(Table)]`:
//!
//! ```rust,ignore
//! #[derive(Debug, Table, sqlx::FromRow)]
//! #[table(name = "users")]
//! pub struct User {
//!     pub id:    i64,
//!     pub name:  String,
//!     pub email: String,
//! }
//! // Generates: users::table, users::id, users::name, users::email
//! ```

pub mod column;
pub mod db;
pub mod expr;
pub mod loaded;
pub mod table;
pub mod window;

mod delete;
mod insert;
mod select;
mod update;

pub use column::{AggExpr, Column, FnExpr, NullsOrder, OrderDir, OrderExpr};
pub use db::{delete_from, insert_into, select, update};
pub use delete::DeleteBuilder;
pub use expr::{CaseExpr, Expr};
pub use insert::InsertBuilder;
pub use loaded::Loaded;
pub use select::{Join, JoinKind, Lock, LockConflict, SelectBuilder};
pub use table::Table;
pub use update::UpdateBuilder;
pub use window::{dense_rank, ntile, rank, row_number, WinExpr, Window};