floz-orm 0.1.1

A lightweight, typesafe Rust ORM — unifying DAO and DSL from a single schema
Documentation
//! # floz
//!
//! A lightweight, typesafe Rust ORM that unifies DAO (Active Record) and
//! DSL (Query Builder) APIs from a single `schema!` definition.
//!
//! ```ignore
//! use floz::prelude::*;
//!
//! floz::schema! {
//!     model User("users") {
//!         id:   integer("id").auto_increment().primary(),
//!         name: varchar("name", 100),
//!         age:  short("age"),
//!     }
//! }
//! ```

// Allow the proc macro codegen to reference `floz::` paths regardless of
// how consumers alias this crate (e.g. `floz-orm` vs `floz`).
extern crate self as floz;

// Re-export the schema! proc macro
pub use floz_macros::schema;

// Core modules
mod value;
mod error;
mod column;
mod expr;
mod query;
mod db;
mod paginate;
mod hooks;

// Public API
pub use value::Value;
pub use error::FlozError;
pub use column::{Column, AnyColumn};
pub use expr::{Expr, OrderExpr, OrderDirection};
pub use db::{Db, Tx, Executor, FlozRowBound};
pub use query::select::SelectQuery;
pub use query::insert::{InsertQuery, InsertManyQuery};
pub use query::update::UpdateQuery;
pub use query::delete::DeleteQuery;
pub use paginate::{Paginated, PaginateQuery};
pub use hooks::FlozHooks;

pub mod prelude;