eloquent 0.2.0

A Rust library for building queries in an eloquent way.
Documentation

Eloquent

tests crate.io docs

A Rust library for building queries in an eloquent way.

Usage

[dependencies]
eloquent = "0.2"

Select Query

use eloquent_core::{Direction, GenericVar};

let query = Eloquent::query()
    .table("flights")
    .select("id")
    .select("flight_number")
    .r#where("destination", GenericVar::Str("SIN"))
    .to_sql()
    .unwrap();

    assert_eq!(query, "SELECT `id`, `flight_number` FROM flights WHERE `destination` = \"SIN\";");

Insert Query

use eloquent_core::{Direction, GenericVar, Clause};

let query = Eloquent::query()
    .insert("flights", vec![
        Clause {
            column: "id".to_string(),
            value: GenericVar::Int(1),
        },
        Clause {
            column: "flight_code".to_string(),
            value: GenericVar::Str("KL0803"),
        },
    ])
    .to_sql()
    .unwrap();

    assert_eq!(query, "INSERT INTO flights (`id`, `flight_code`) VALUES (1, \"KL0803\");");

Update Query

use eloquent_core::{Direction, GenericVar, Clause};

let query = Eloquent::query()
    .update("flights", vec![
        Clause {
            column: "flight_code".to_string(),
            value: GenericVar::Str("KL0803"),
        },
        Clause {
            column: "destination".to_string(),
            value: GenericVar::Str("Bangkok"),
        },
    ])
    .r#where("id", GenericVar::Int(1))
    .to_sql()
    .unwrap();

    assert_eq!(query, "INSERT INTO flights (`id`, `flight_code`) VALUES (1, \"KL0803\") WHERE `id` = 1;");

Delete Query

use eloquent_core::{Direction, GenericVar};

let query = Eloquent::query()
    .delete("flights")
    .r#where("id", GenericVar::Int(1))
    .to_sql()
    .unwrap();

assert_eq!(query, "DELETE FROM flights WHERE `id` = 1;");