dactyl::query! proc macro.
Lexically analyzes the SQL literal at compile time so:
- Hard-coded constructs are visible to the analyzer before the crate is built.
- The literal is rewritten (currently identity) at compile time so the runtime path stays allocation-light.
- Empty literals fail to compile with a clear message.
The expanded form returns a String containing the (rewritten) SQL.
Callers wire it into dactyl::read / dactyl::write directly:
let rows = dactyl::read(&dactyl::query!("select id, title from todos"), true)?;