slacker 0.1.3

Slacker server built on top of tokio.
Documentation
#[macro_use]
extern crate log;
#[macro_use]
extern crate maplit;

extern crate slacker;
extern crate serde_json;
extern crate futures;
extern crate env_logger;

use futures::{oneshot, Oneshot};
use serde_json::value::Value as Json;
use slacker::{Server, JsonRpcFn};

fn echo(s: &Vec<Json>) -> Oneshot<Json> {
    debug!("calling {:?}", s);
    let (c, p) = oneshot::<Json>();
    c.send(Json::Array(s.clone())).unwrap();
    p
}

fn main() {
    drop(env_logger::init());

    let funcs =
        btreemap! {
        "rust.test/echo".to_owned() => Box::new(echo) as JsonRpcFn
    };

    let addr = "127.0.0.1:3299".parse().unwrap();
    let server = Server::new(addr, funcs);
    server.serve();
}