A closed, non-generic sum of every literal value the crate can bind as a
query parameter. Deliberately not Box<dyn ToSql>: a plain enum keeps
the renderer free of vtable dispatch and lets it stay a single
non-generic function no matter how many query shapes exist.
A NULL of a specific base type, not a single untyped Null: a
Postgres bind declares a parameter type even when the value is NULL,
and a mismatched one can fail query planning. Each NullX variant
lets the execution layer bind Option::<X>::None with the right
type.
A named placeholder in a prepare!{}-built query, not yet resolved
to a concrete value. It rides the existing Vec<Value> parameter
pipeline: rendering doesn’t care what’s inside a Value, only that
there’s one per placeholder position. select::Prepared substitutes
real values before binding.
The SQL type this value came from, for the one error that has to name
it: a column type enabled in this crate and not in the execution
crate. Lives here because the feature-gated variants do.