````rust use hypers::prelude::*; use serde::{Serialize,Deserialize};
struct User { name: String, age: u16, }
pub async fn home(_req: Request) -> impl Responder { (200,"Home") }
pub async fn login(user: Json
pub async fn about(_req: Request) -> impl Responder { (200,String::from("about")) }
pub async fn logger_middleware(req: Request,res: Response) -> Result { let uri = req.uri().path(); if uri != "/" { return Err(anyhow::Error::msg("NotFound")) } Ok(res) }
fn user_router() -> Router { Router::new().route(vec![login]) }
fn router() -> Router{
let router = Router::new();
let router = router.route(vec![home]).get("/about",about);
let router = router.middleware(logger_middleware);
let router = router.group("/user",user_router());
router
}
async fn main() -> Result<()> {
let router = router();
let app = hypers::new(router);
app.listen("127.0.0.1:7878").await
} `````