We want to accumulate values that will later be substituted into a SQL statement execution.
This struct encapsulates the generated string and the initial argument list.
Additional user-supplied argument bindings, with their placeholders accumulated via
push_bind_param, will be appended to this argument list.
An error from the underlying database, carried as text so the trait stays
engine-neutral. sqlite_code is set for SQLite errors that callers inspect
(e.g. a constraint violation).
SqlConn for a rusqlite connection. rusqlite::Connection is foreign and
so is the trait, so the impl is on this local wrapper; callers pass
&SqliteConn(&conn), or use sqlite to get one.
Gratefully based on Diesel’s QueryBuilder trait:
https://github.com/diesel-rs/diesel/blob/4885f61b8205f7f3c2cfa03837ed6714831abe6b/diesel/src/query_builder/mod.rs#L56