envoy_http 0.0.9

A minimal and pragmatic Rust web application framework built for rapid development
Documentation
use envoy::{Method, Response, Body};
use hyper::body;

#[tokio::test]
async fn should_accept_boxed_endpoints() {
    fn endpoint() -> Box<dyn envoy::Endpoint> {
        async fn inner(_ctx: &mut envoy::Context) -> envoy::Result {
            Ok(envoy::Response::new("hello world".into()))
        }
        Box::new(inner)
    }

    let mut app = envoy::Server::new();
    app.at("/").get(endpoint());

    let mut response: Response<Body> = app
        .respond(envoy::Request::builder()
            .method(Method::GET)
            .uri("http://example.com/")
            .body(Body::empty())
            .unwrap()
        )
        .await
        .unwrap();

    assert_eq!(
        body::to_bytes(response.body_mut()).await.unwrap(),
        "hello world"
    );
}