Skip to main content

SQLInsert

Trait SQLInsert 

Source
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§

Source

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.

Implementors§