⚡️ Quick Start

````rust use hypers::prelude::*; use serde::{Serialize,Deserialize};

[derive(Debug,Serialize,Deserialize)]

struct User { name: String, age: u16, }

[get("/home")]

pub async fn home(_req: Request) -> impl Responder { (200,"Home") }

[post("/login")]

pub async fn login(user: Json) -> impl Responder { (200,user) }

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

}

[tokio::main]

async fn main() -> Result<()> {

let router = router();

let app = hypers::new(router);

app.listen("127.0.0.1:7878").await

} `````