fabrique 0.3.1

SQL-first, type-safe, ergonomic database toolkit for Rust
Documentation
use fabrique::prelude::*;
use uuid::Uuid;

#[derive(Clone, Debug, Default, Factory, PartialEq, Model)]
#[allow(dead_code)]
pub struct Product {
    pub id: Uuid,
    pub name: String,
    pub price_cents: i32,
    pub in_stock: bool,
}

#[fabrique::test]
async fn test_save<DB: Dialect>(pool: Pool<DB>) {
    let result = Product::default().save(&pool).await;
    assert!(result.is_ok());
}

#[fabrique::test]
async fn test_update<DB: Dialect>(pool: Pool<DB>) {
    let product = Product::factory().create(&pool).await.unwrap();
    let result = Product::update()
        .set(Product::NAME, "Anvil 3000")
        .r#where(Product::ID, "=", product.id)
        .execute(&pool)
        .await;
    assert!(result.is_ok());
}