   async fn handler1(req: Request<Body>) -> neo::Result<Response<Body>> {

   }

   async fn handle_all(req: Request<Body>) -> neo::Result<Response<Body>> {

   }

   async fn handler2(req: Request<Body>) -> neo::Result<Response<Body>> {

   }

   async fn middleware1(req: Request<Body>) -> neo::Result<Request<Body>> {

   }

   async fn middleware2(res: Response<Body>) -> neo::Result<Response<Body>> {
      
   }
   
   let router = Router::builder()
   .middleware(Middleware::pre(middleware1))
   .middleware(Middleware::post(middleware2)) 
   .get("/", handler1)
   .add("/payments", vec![GET, POST], handler2)
   .router("/api", &static other_router)
   .all(handle_all);

   let res = router.process(req);