From 824024b96db0b63801f8a4cd0b2e4c5d2f944e68 Mon Sep 17 00:00:00 2001 From: Manuel Cillero Date: Mon, 8 Sep 2025 18:57:09 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20[context]=20A=C3=B1ade=20m=C3=A9tod?= =?UTF-8?q?os=20auxiliares=20de=20par=C3=A1metros?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/html/context.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/html/context.rs b/src/html/context.rs index 79148b0..26e2478 100644 --- a/src/html/context.rs +++ b/src/html/context.rs @@ -118,6 +118,21 @@ pub trait Contextual: LangId { /// Recupera un parámetro como [`Option`]. fn param(&self, key: &'static str) -> Option<&T>; + /// Devuelve el parámetro clonado o el **valor por defecto del tipo** (`T::default()`). + fn param_or_default(&self, key: &'static str) -> T { + self.param::(key).cloned().unwrap_or_default() + } + + /// Devuelve el parámetro clonado o un **valor por defecto** si no existe. + fn param_or(&self, key: &'static str, default: T) -> T { + self.param::(key).cloned().unwrap_or(default) + } + + /// Devuelve el parámetro clonado o el **valor evaluado** por la función `f` si no existe. + fn param_or_else T>(&self, key: &'static str, f: F) -> T { + self.param::(key).cloned().unwrap_or_else(f) + } + /// Devuelve el Favicon de los recursos del contexto. fn favicon(&self) -> Option<&Favicon>;