Skip to main content

Crate resolute_macros

Crate resolute_macros 

Source
Expand description

Compile-time checked SQL query macros with offline cache support.

Connects to PostgreSQL at compile time via pg-wired to validate SQL and generate typed result structs.

§Modes

  • Online (default): Connects to DB via DATABASE_URL, caches results to .resolute/
  • Offline: Set RESOLUTE_OFFLINE=true to use cached metadata only (no DB needed)
  • Prepare: Run resolute-cli prepare to populate the cache from source files
let rows = resolute::query!("SELECT id, name FROM users WHERE id = $1", user_id)
    .fetch_all(&client)
    .await?;

Macros§

query
query!("SQL", param1, param2, ...) — compile-time checked SQL query.
query_as
query_as!(Type, "SQL", param1, param2, ...) — compile-time checked query mapped to an existing struct via FromRow.
query_file
query_file!("path/to/query.sql", param1, param2, ...) — like query! but reads SQL from a file.
query_file_as
query_file_as!(Type, "path/to/query.sql", param1, ...) — like query_as! but reads SQL from a file.
query_file_scalar
query_file_scalar!("path/to/query.sql", param1, ...) — file-based scalar query.
query_scalar
query_scalar!("SQL", param1, ...) — compile-time checked single-value query.
query_unchecked
query_unchecked!("SQL", param1, ...) — skip compile-time validation. Useful when DATABASE_URL is unavailable and no cache exists. Params are passed as-is; no type or count checking.