Use cte_query!, seed_query!, and step_query! to wrap ad-hoc Diesel
expressions before passing them into RecursiveParts::new. The macros keep the
fragments strongly typed whilst avoiding manual QueryPart construction and
make the exported helpers more visible when developers scan the module surface.
use diesel::{dsl::sql, sql_types::Integer};
use diesel_cte_ext::{RecursiveParts, cte_query, seed_query, step_query};
let parts = RecursiveParts::new(
seed_query!(sql::<Integer>("SELECT 1")),
step_query!(sql::<Integer>("SELECT n + 1 FROM series")),
cte_query!(sql::<Integer>("SELECT n FROM series")),
);