From 64ad2424ceeb6d9be7c1a895c0680b272e16ad91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= Date: Sat, 12 Oct 2024 16:54:48 +0200 Subject: [PATCH 1/2] "object safe" is now "dyn-compatible" The phrase was changed in . --- rinja/src/lib.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rinja/src/lib.rs b/rinja/src/lib.rs index f04be5214..0c08273e9 100644 --- a/rinja/src/lib.rs +++ b/rinja/src/lib.rs @@ -180,9 +180,11 @@ impl Template for &T { const SIZE_HINT: usize = T::SIZE_HINT; } -/// Object-safe wrapper trait around [`Template`] implementers +/// [`dyn`-compatible] wrapper trait around [`Template`] implementers /// -/// This trades reduced performance (mostly due to writing into `dyn Write`) for object safety. +/// This trades reduced performance (mostly due to writing into `dyn Write`) for dyn-compatibility. +/// +/// [`dyn`-compatible]: https://doc.rust-lang.org/stable/reference/items/traits.html#dyn-compatibility pub trait DynTemplate { /// Helper method which allocates a new `String` and renders into it #[cfg(feature = "alloc")] From a4527b84245c2ed4b47a32f67b70eba04ddde395 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= Date: Sat, 12 Oct 2024 17:01:35 +0200 Subject: [PATCH 2/2] Make simple forwarding methods `#[inline]` --- rinja/src/lib.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rinja/src/lib.rs b/rinja/src/lib.rs index 0c08273e9..ecc4273bc 100644 --- a/rinja/src/lib.rs +++ b/rinja/src/lib.rs @@ -202,11 +202,13 @@ pub trait DynTemplate { } impl DynTemplate for T { + #[inline] #[cfg(feature = "alloc")] fn dyn_render(&self) -> Result { ::render(self) } + #[inline] fn dyn_render_into(&self, writer: &mut dyn fmt::Write) -> Result<()> { ::render_into(self, writer) } @@ -217,12 +219,14 @@ impl DynTemplate for T { ::write_into(self, writer) } + #[inline] fn size_hint(&self) -> usize { - Self::SIZE_HINT + ::SIZE_HINT } } impl fmt::Display for dyn DynTemplate { + #[inline] fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { self.dyn_render_into(f).map_err(|_| fmt::Error {}) }