redis-lua 0.4.0

Redis Lua scripting helper
Documentation
use redis_lua::{lua, lua_s};

fn main() {
    let client = redis::Client::open("redis://127.0.0.1/").unwrap();
    let mut con = client.get_connection().unwrap();

    let value = 10;
    let weight = 2;
    let msg = "Calc";

    // Generate a script object
    let script = lua!(
        local res = @weight * @value;
        return @msg..": "..@value.."*"..@weight.."="..res;
    );

    let v: String = script.invoke(&mut con).unwrap();
    println!("return: {}", v);

    // Generate a string
    let v: u32 = redis::Script::new(lua_s!(
        local a = ARGV[1];
        local b = ARGV[2];
        return a + b;
    ))
    .arg(310)
    .arg(42)
    .invoke(&mut con)
    .unwrap();

    println!("return: {}", v);

    // Generate a script object
    let script1 = lua!(
        local v = $a * $b
        if v > 80 then
            return v .. " > 80"
        else
            return v .. " <= 80"
        end
    );

    let script2 = lua!(
        local v = $a * $b * $c
        if v > 50 then
            return v .. " > 50"
        else
            return v .. " <= 50"
        end
    );

    for i in 0..4 {
        let r: String = script1.clone().a(15).b(i).invoke(&mut con).unwrap();
        println!("{}", r);
    }

    for i in 0..4 {
        let r: String = script2.clone().a(15).b(i).c(3).invoke(&mut con).unwrap();
        println!("{}", r);
    }
}