Version 0.1
このライブラリはまだ実験段階。 特にデザインに関して、大きく変更したい。 しかしそのためには、warpのアップデートや作者の知識を増やすことが必要。 とりあえず動くものとしてversion 0.1をリリースする。
Desired Design
use filters as json_rpc;
use future;
use Filter as _;
const RPC_ENDPOINT: &str = "rpc";
let add_method = path
. method
.and
.and_then;
let greet_method = path
. method
.and
.and_then
let filter = add_method.or;
現在はこれができない。なぜなら、最初にBodyをパースした段階でBodyがextractされてしまい、次回以降のパース時に失敗するから。
これを実現するためには Request
に対してメタデータとしてパースしたBodyを付与すればいい。
ただし、現在のwarpのデザインからは ext::set
が削除されている。
https://github.com/seanmonstar/warp/issues/222
代替策として hyper::Service に変換するというのが提案されているが、一度Serviceに変換すると以降warpの世界に戻って来れなそう。(この辺は俺の知識不足もあるかも)