cratestack_sql/lib.rs
1//! Dialect-agnostic SQL primitives shared by the Postgres (`cratestack-sqlx`)
2//! and SQLite (`cratestack-rusqlite`) backends.
3//!
4//! This crate carries the type definitions every backend agrees on:
5//!
6//! - [`SqlValue`] / [`SqlColumnValue`] — value envelopes used to bind data
7//! - [`CreateModelInput`] / [`UpdateModelInput`] — traits the codegen emits
8//! - [`Filter`] / [`FilterExpr`] / [`FieldRef`] — query AST
9//! - [`OrderClause`] / [`SortDirection`] — ordering AST
10//! - [`ModelDescriptor`] / [`ModelColumn`] / [`CreateDefault`] — schema
11//! metadata baked into compiled code by `include_schema!`
12//!
13//! Rendering SQL strings, executing queries, and any DB-driver coupling
14//! live in the backend crates.
15
16mod descriptor;
17mod dialect;
18mod filter;
19mod order;
20mod values;
21
22pub use descriptor::{CreateDefault, CreateDefaultType, ModelColumn, ModelDescriptor};
23pub use dialect::{Dialect, PostgresDialect, SqliteDialect};
24pub use filter::{
25 FieldRef, Filter, FilterExpr, FilterOp, RelationFilter, RelationQuantifier,
26};
27pub use order::{OrderClause, OrderTarget, SortDirection};
28pub use values::{
29 CreateModelInput, FilterValue, IntoSqlValue, SqlColumnValue, SqlValue, UpdateModelInput,
30};