sntl 0.1.0

Compile-time guarded ORM for PostgreSQL — your data's guardian from compile to production
Documentation
use sntl::core::expr::Column;
use sntl::core::query::DeleteQuery;
use sntl::core::types::Value;

#[test]
fn delete_by_id() {
    let q = DeleteQuery::new("users").where_id(Value::from("abc-123"));
    let (sql, binds) = q.build();
    assert_eq!(sql, "DELETE FROM \"users\" WHERE \"id\" = $1");
    assert_eq!(binds.len(), 1);
}

#[test]
fn delete_with_where_expr() {
    let col = Column::new("users", "active");
    let q = DeleteQuery::new("users").where_(col.eq(false));
    let (sql, binds) = q.build();
    assert_eq!(sql, "DELETE FROM \"users\" WHERE \"users\".\"active\" = $1");
    assert_eq!(binds.len(), 1);
}

#[test]
fn delete_with_returning() {
    let q = DeleteQuery::new("users")
        .where_id(Value::from("abc-123"))
        .returning();
    let (sql, _) = q.build();
    assert_eq!(sql, "DELETE FROM \"users\" WHERE \"id\" = $1 RETURNING *");
}