11 releases

0.1.10 Jul 9, 2024
0.1.9 Jun 20, 2024
0.1.2 May 31, 2024

#110 in Template engine

Download history 353/week @ 2024-05-31 11/week @ 2024-06-07 884/week @ 2024-06-14 98/week @ 2024-06-21 5/week @ 2024-06-28 186/week @ 2024-07-05 20/week @ 2024-07-12

541 downloads per month

MIT license

82 lines


This library provides a macro for handling query templates in conjunction with the sqlx_conditional_queries library. It simplifies the creation of SQL queries with conditional parameters.

Basic Example

let keehee = [Keehee::OwO, Keehee::UmU, Keehee::UwU]
    .choose(&mut rand::thread_rng())

    #keehee = match keehee {
        Keehee::OwO => "owo",
        Keehee::UmU => "umu",
        Keehee::UwU => "uwu"

This will generate an keehee_query macro.

Using the generated query

keehee_query is a template. You can use it to do an sqlx query:

keehee_query!(BigID, "DO YOUR QUERY", #hey=match {...})

We can further extend the template with aditional variables using the macro supply_sql_variables_to_query_as.

    $keehee_query as some_query,
    #name = match Fall::Through {
        _ => "{keehee_name}",

In this example we create some_query, which is another macro that have the same template variables as keehee_query with the addition of #name.

It does not stop here though!

We can merge two queries into one through:

merge_sql_query_as!($(a, b) as argsception);

This will merge all the template variables of a and b into a single argsception query!


This macro relies on other macros from sqlx_conditional_queries.


You need to enable the macro_metavar_expr feature to use this library:


You will also need to add the following dependencies to Cargo.toml: sqlx_conditional_queries, paste. You can do so easily, through:

cargo add sqlx_conditional_queries
cargo add paste

See Also

No runtime deps