use maw::prelude::*;
#[tokio::main]
async fn main() -> Result<(), MawError> {
tracing_subscriber::fmt::init();
let app = App::new()
.views_with("templates", |e| {
e.add_global("app_name", "Maw - Minijinja");
e.add_filter("upper", |s: &str| s.to_uppercase());
e.add_function("lower", str::to_lowercase);
e.add_global("test_value", 42);
}) .router(
Router::new()
.middleware(async |c: &mut Ctx| {
c.res.locals.insert("not_app_name", "some value");
c.next().await;
})
.get("/", async |c: &mut Ctx| {
c.res.render("index.html"); })
.get("/user/{name}", async |c: &mut Ctx| {
let name = c.req.param_str("name");
c.res.render_with("user.html", minijinja::context! { name });
}),
);
app.listen("127.0.0.1:3000").await
}