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

no-std sqlx_query

根据在构建过程中是否启用 sqlx_compiletime_checks,扩展为 sqlx 函数 query 或宏 query! 调用

3 个不稳定版本

0.2.1 2023年11月3日
0.2.0 2023年11月3日
0.1.0 2023年11月3日

#1029 in Rust 模式

MIT 许可证

8KB
105

模块 :: sqlx_query

experimental rust-status docs.rs Open in Gitpod discord

用于创建 CLI(命令用户界面)的工具。它能够聚合外部二进制应用程序以及用您的语言编写的函数。

示例

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?;

添加到您的项目中

cargo add sqlx_query

从仓库尝试

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

无运行时依赖