#[generate_versions]Expand description
Attribute macro for generating method variants with different executor types
This macro generates additional method variants that accept different executor types. Apply this macro to individual methods that need variants.
§Supported Variant Types
pool- Addspool: &sqlx_data::Poolparameter and_with_poolsuffixtx- Addstransaction: &mut sqlx_data::Transaction<'_>parameter and_with_txsuffixconn- Addsconnection: &mut sqlx_data::Connectionparameter and_with_connsuffixexec- Addsexecutor: impl sqlx_data::Executor<'_>parameter and_with_executorsuffix
§Usage
ⓘ
use sqlx_data_macros::{generate_versions, dml, repo};
#[repo]
trait UserRepo {
// Original method with variants
#[generate_versions(pool, tx)]
#[dml("DELETE FROM users WHERE id = $1")]
async fn delete_user(&self, id: i64) -> Result<QueryResult>;
}§Generated Output
The macro generates additional methods alongside the original:
ⓘ
// Original (preserved)
#[dml("DELETE FROM users WHERE id = $1")]
async fn delete_user(&self, id: i64) -> Result<QueryResult>;
// Generated variants
#[dml("DELETE FROM users WHERE id = $1")]
async fn delete_user_with_pool(&self, pool: &sqlx_data::Pool, id: i64) -> Result<QueryResult>;
#[dml("DELETE FROM users WHERE id = $1")]
async fn delete_user_with_tx(&self, transaction: &mut sqlx_data::Transaction<'_>, id: i64) -> Result<QueryResult>;