#sqlx #query #expand #during #build #macro #enabled

no-std sqlx_query

Expands to either sqlx function query or macro query! call depending on sqlx_compiletime_checks has been enabled during the build

3 unstable releases

0.2.1 Nov 3, 2023
0.2.0 Nov 3, 2023
0.1.0 Nov 3, 2023

#579 in Rust patterns

Download history 1/week @ 2024-02-16 4/week @ 2024-02-23 1/week @ 2024-03-01 40/week @ 2024-03-22 30/week @ 2024-03-29 1/week @ 2024-04-05

71 downloads per month

MIT license

8KB
105 lines

Module :: sqlx_query

experimental rust-status docs.rs Open in Gitpod discord

The tool to make CLI ( commands user interface ). It is able to aggregate external binary applications, as well as functions, which are written in your language.

Sample

use sqlx_query::*;

let user : User = query_as!( User, "SELECT * FROM users LIMIT 1" )
    .fetch_one( executor )
    .await?;

query!( "DELETE FROM users WHERE id = $1", user.id )
    .execute( executor )
    .await?;
}

// Expands to

let user : User =
  {
    #[ cfg( feature = "sqlx_compiletime_checks" ) ]
    let q = ::sqlx::query_as::< _, User >( "SELECT * FROM users LIMIT 1" );
    #[ cfg( not( feature = "sqlx_compiletime_checks" ) ) ]
    let q = ::sqlx::query_as!( User, "SELECT * FROM users LIMIT 1" );
    q
  }
    .fetch_one( executor )
    .await?;
{
  #[ cfg( feature = "sqlx_compiletime_checks" ) ]
  let q = ::sqlx::query( "DELETE FROM users WHERE id = $1" ).bind( user.id );
  #[ cfg( not( feature = "sqlx_compiletime_checks" ) ) ]
  let q = ::sqlx::query!( "DELETE FROM users WHERE id = $1", user.id );
  q
}
    .execute( executor )
    .await?;

To add to your project

cargo add sqlx_query

Try out from the repository

git clone https://github.com/Wandalen/wTools
cd wTools
cd sample/rust/sqlx_query_trivial
cargo run

No runtime deps