Version 0.1

このライブラリはまだ実験段階。 特にデザインに関して、大きく変更したい。 しかしそのためには、warpのアップデートや作者の知識を増やすことが必要。 とりあえず動くものとしてversion 0.1をリリースする。

Desired Design

```rust use warpjsonrpc::filters as json_rpc; use futures::future; use warp::Filter as _;

const RPC_ENDPOINT: &str = "rpc";

let addmethod = filters::path::path(RPCENDPOINT) .jsonrpc::method("add") .and(jsonrpc::params::<(u8, u8)>()) .and_then(|a, b| future::ok(a + b));

let greetmethod = filters::path::path(RPCENDPOINT) .jsonrpc::method("greet") .and(jsonrpc::params::<(String)>()) .and_then(|name| future::ok(format!("Hello {}", name)))

let filter = addmethod.or(greetmethod); ```

現在はこれができない。なぜなら、最初にBodyをパースした段階でBodyがextractされてしまい、次回以降のパース時に失敗するから。 これを実現するためには Request に対してメタデータとしてパースしたBodyを付与すればいい。 ただし、現在のwarpのデザインからは ext::set が削除されている。 https://github.com/seanmonstar/warp/issues/222

代替策として hyper::Service に変換するというのが提案されているが、一度Serviceに変換すると以降warpの世界に戻って来れなそう。(この辺は俺の知識不足もあるかも)