warp 0.1.10

serve the web at warp speeds
Documentation
#![deny(warnings)]
extern crate warp;

use warp::Filter;

#[derive(Clone, Debug, PartialEq)]
struct Ext1(i32);

#[test]
fn set_and_get() {
    let ext = warp::any()
        .map(|| {
            warp::ext::set(Ext1(55));
        })
        .untuple_one()
        .and(warp::ext::get::<Ext1>());

    let extracted = warp::test::request()
        .filter(&ext)
        .unwrap();

    assert_eq!(extracted, Ext1(55));
}

#[test]
fn get_missing() {
    let ext = warp::ext::get()
        .map(|e: Ext1| e.0.to_string());

    let res = warp::test::request()
        .reply(&ext);

    assert_eq!(res.status(), 500);
    assert_eq!(res.body(), "Missing request extension");
}

#[test]
#[should_panic]
fn set_outside_of_filter_should_panic() {
    warp::ext::set(Ext1(55));
}