sqlxinsert

Warning: used in private projects

Derive macro for inserting struct into sql.

```rust let query = r#" insert into article ( title, subtitle, url, text ) values ( $1, $2, $3, $4 ) returning * "#;

let result: Article = sqlx::queryas::<_, Article>(query) .bind(&article.title) .bind(&article.subtitle) .bind(&article.url) .bind(&article.text) .fetchone(&mut conn) .await?; ```

Using derive macro

rust let res = car.insert::<Car>(&pool, "cars").await?

Example with different input and output structs.

```rust [derive(Default, Debug, std::cmp::PartialEq, sqlx::FromRow)] struct Car { pub id: i32, pub name: String, }

[derive(Default, Debug, sqlx::FromRow, gmacro::PqInsert)]

struct CreateCar { pub name: String, pub color: Option, }

[tokio::main]

async fn main() -> eyre::Result<()>{ let url = "postgres://user:pass@localhost:5432/testdb"; let pool = sqlx::SqlitePool::builder().build(&url).await.unwrap(); let carskoda = CreateCar { name: "Skoda".tostring(), color: None, } let res: Car = carskoda.insert::(&pool, "cars").await?; Ok(()) } ```

Build

make build

Test

Requirements: docker installed

make testall