prax-query
Type-safe query builder for the Prax ORM.
This crate provides the core query building functionality, including:
- Fluent API for building queries (
find_many,find_unique,create,update,delete) - Type-safe filtering with
whereclauses - Sorting and pagination
- Relation loading (
include,select) - Transaction support
- Raw SQL escape hatch
- Middleware system
- Multi-tenant support
Filters
Build type-safe filters for queries:
use ;
// Equality filter
let filter = Equals;
// Greater than filter
let filter = Gt;
// Contains filter (for strings)
let filter = Contains;
// Combine filters with AND/OR
let combined = and;
let either = or;
Filter Values
Convert Rust types to filter values:
use FilterValue;
// Integer values
let val: FilterValue = 42.into;
assert!;
// String values
let val: FilterValue = "hello".into;
assert!;
// Boolean values
let val: FilterValue = true.into;
assert!;
// Float values
let val: FilterValue = 3.14f64.into;
assert!;
// Null values
let val = Null;
Sorting
Build sort specifications:
use ;
// Ascending order
let order = asc;
// Descending order
let order = desc;
// With NULLS FIRST/LAST
let order = asc.nulls;
let order = desc.nulls;
// Combine multiple orderings
let orders = Field
.then;
Raw SQL
Build raw SQL queries with parameter binding:
use Sql;
// Simple query
let sql = new;
assert_eq!;
// Query with parameter - bind appends placeholder
let sql = new
.bind;
assert_eq!;
Connection Strings
Parse database connection strings:
use ConnectionString;
// PostgreSQL
let conn = parse.unwrap;
assert_eq!;
assert_eq!;
assert_eq!;
// MySQL
let conn = parse.unwrap;
Transaction Config
Configure transaction behavior:
use IsolationLevel;
let level = Serializable;
assert_eq!;
Error Handling
Work with query errors:
use ;
// Create errors
let err = not_found;
assert_eq!;