ruroonga_expr 0.2.0

A tiny Groonga expression builder and generator.
Documentation
extern crate ruroonga_expr;

use ruroonga_expr::dsl::*;

#[test]
fn logical_and_expr() {
    let lexpr = fulltext_expr("Rust").column("language").prepare().unwrap();
    let rexpr = fulltext_expr("Haskell").column("language").prepare().unwrap();
    let comb_lexpr = greater_equal_expr("n_likes", "10").prepare();
    let result = (comb_lexpr % (lexpr + rexpr)).build();
    assert_eq!("\'n_likes:>=10 (language:@Rust + language:@Haskell)\'", result);
}

#[test]
fn logical_or_expr() {
    let lexpr = fulltext_expr("Rust").column("language").prepare().unwrap();
    let rexpr = fulltext_expr("Haskell").column("language").prepare().unwrap();
    let comb_lexpr = greater_equal_expr("n_likes", "10").prepare();
    let result = (comb_lexpr % (lexpr | rexpr)).build();
    assert_eq!("\'n_likes:>=10 (language:@Rust OR language:@Haskell)\'", result);
}

#[test]
fn logical_not_expr() {
    let lexpr = fulltext_expr("Rust").column("language").prepare().unwrap();
    let rexpr = fulltext_expr("Haskell").column("language").prepare().unwrap();
    let comb_lexpr = greater_equal_expr("n_likes", "10").prepare();
    let result = (comb_lexpr % (lexpr - rexpr)).build();
    assert_eq!("\'n_likes:>=10 (language:@Rust - language:@Haskell)\'", result);
}