router-service 0.2.0

A simple HTTP router to be used as a tower service
Documentation
use http::StatusCode;
use hyper::{Body, Response, Server};
use router_service::Router;
use tower::make::Shared;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let router = Router::new()
        .get("/", |_, _| async move {
            Response::builder().body(Body::from("Hello, World!"))
        })
        .any("/*catchall", |_, ctx| async move {
            let body = format!("no endpoint \"/{}\"", ctx.param("catchall").unwrap());
            Response::builder()
                .status(StatusCode::NOT_FOUND)
                .body(Body::from(body))
        });

    let addr = ([127, 0, 0, 1], 3030).into();
    Server::bind(&addr).serve(Shared::new(router)).await?;

    Ok(())
}