Macros
context_update!, context!, impl_from_error!
context_update! — injecter des variables Tera
handler
pub async fn ma_vue(mut request: Request) -> AppResult<Response> {
let articles = vec!["Article 1", "Article 2"];
// Injecter dans le contexte Tera
context_update!(request => {
"title" => "Ma page",
"articles" => &articles,
"count" => articles.len(),
});
request.render("ma_page.html")
}
context_update! — injecter des variables Tera
handler
pub async fn ma_vue(mut request: Request) -> AppResult<Response> {
let articles = vec!["Article 1", "Article 2"];
// Injecter dans le contexte Tera
context_update!(request => {
"title" => "Ma page",
"articles" => &articles,
"count" => articles.len(),
});
request.render("ma_page.html")
}
Macros flash — messages utilisateur
handler
// Dans un handler
success!(request.notices => "Enregistre avec succes !");
error!(request.notices => "Une erreur est survenue.");
info!(request.notices => "Verification en cours...");
warning!(request.notices => "Attention : session bientot expiree.");
// flash_now! — message injecte directement dans le contexte
context_update!(request => {
"messages" => flash_now!(success => "Cree !"),
});
Macros flash — messages utilisateur
handler
// Dans un handler
success!(request.notices => "Enregistre avec succes !");
error!(request.notices => "Une erreur est survenue.");
info!(request.notices => "Verification en cours...");
warning!(request.notices => "Attention : session bientot expiree.");
// flash_now! — message injecte directement dans le contexte
context_update!(request => {
"messages" => flash_now!(success => "Cree !"),
});
impl_from_error! — convertir des erreurs
handler
// Convertit automatiquement DbErr et autres en AppError
impl_from_error!(
sea_orm::DbErr => database_error,
std::io::Error => internal_error,
serde_json::Error => serialization_error,
);
// Permet d''utiliser ? dans les handlers
pub async fn handler(mut request: Request) -> AppResult<Response> {
let article = Article::find_by_id(1).one(&*db).await?; // DbErr converti
Ok(request.render("page.html")?)
}
impl_from_error! — convertir des erreurs
handler
// Convertit automatiquement DbErr et autres en AppError
impl_from_error!(
sea_orm::DbErr => database_error,
std::io::Error => internal_error,
serde_json::Error => serialization_error,
);
// Permet d''utiliser ? dans les handlers
pub async fn handler(mut request: Request) -> AppResult<Response> {
let article = Article::find_by_id(1).one(&*db).await?; // DbErr converti
Ok(request.render("page.html")?)
}