pub trait SQLInsert<DB: Database, R> {
// Required method
fn sql_insert<'e, 'c, E: 'e + Executor<'c, Database = DB>>(
&self,
connection: E,
) -> impl Future<Output = Result<R>>;
}Expand description
Trait for inserting a struct into a SQL database.
Example:
use sqlx::Postgres;
use sqlx::Sqlite;
use sqlx::PgConnection;
use sqlx_insert::SQLInsert;
// If using macros feature, only a single database is supported
#[derive(SQLInsert, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "use-macros", sqlx_insert(database(Postgres)))]
#[cfg_attr(not(feature = "use-macros"), sqlx_insert(database(Postgres, Sqlite)))]
struct MyStruct {
id: i32,
name: String,
}
async fn insert_my_struct(connection: &mut PgConnection) -> sqlx::Result<()> {
let my_struct = MyStruct { id: 1, name: "test".to_string() };
my_struct.sql_insert(connection).await
}Required Methods§
fn sql_insert<'e, 'c, E: 'e + Executor<'c, Database = DB>>( &self, connection: E, ) -> impl Future<Output = Result<R>>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.