Architecture of a Runique Project

Rust Macros

Runique provides a set of macros to simplify development.

Context Macros

MacroDescriptionExample
context!Create a Tera contextcontext!("title" => "Page")
context_update!Add to a Request's contextcontext_update!(request => { "key" => value })

Flash Message Macros

MacroDescriptionExample
success!Success message (session)success!(request.notices => "OK!")
error!Error message (session)error!(request.notices => "Error")
info!Info message (session)info!(request.notices => "Info")
warning!Warning (session)warning!(request.notices => "Warning")
flash_now!Immediate message (no session)flash_now!(error => "Errors")

Routing Macros

MacroDescriptionExample
urlpatterns!Define named routesurlpatterns!("/" => view!{...}, name = "index")
view!Handler for all HTTP methodsview!{ GET => handler, POST => handler2 }
impl_objects!Django-like manager for SeaORMimpl_objects!(Entity)

Error Macros

MacroDescription
impl_from_error!Generates From<Error> for AppError