Add missing #[inline] annotations

This commit is contained in:
René Kijewski 2025-04-27 21:30:19 +02:00
parent bf5e066b68
commit 01e9d3c640
2 changed files with 13 additions and 3 deletions

View File

@ -161,6 +161,7 @@ pub trait Template: fmt::Display + FastWritable {
} }
impl<W: io::Write> fmt::Write for Wrapped<W> { impl<W: io::Write> fmt::Write for Wrapped<W> {
#[inline]
fn write_str(&mut self, s: &str) -> fmt::Result { fn write_str(&mut self, s: &str) -> fmt::Result {
if let Err(err) = self.writer.write_all(s.as_bytes()) { if let Err(err) = self.writer.write_all(s.as_bytes()) {
self.err = Some(err); self.err = Some(err);
@ -286,6 +287,7 @@ impl<T: Template> DynTemplate for T {
<Self as Template>::render(self) <Self as Template>::render(self)
} }
#[inline]
#[cfg(feature = "alloc")] #[cfg(feature = "alloc")]
fn dyn_render_with_values(&self, values: &dyn Values) -> Result<String> { fn dyn_render_with_values(&self, values: &dyn Values) -> Result<String> {
<Self as Template>::render_with_values(self, values) <Self as Template>::render_with_values(self, values)
@ -296,6 +298,7 @@ impl<T: Template> DynTemplate for T {
<Self as Template>::render_into(self, writer) <Self as Template>::render_into(self, writer)
} }
#[inline]
fn dyn_render_into_with_values( fn dyn_render_into_with_values(
&self, &self,
writer: &mut dyn fmt::Write, writer: &mut dyn fmt::Write,
@ -304,6 +307,7 @@ impl<T: Template> DynTemplate for T {
<Self as Template>::render_into_with_values(self, writer, values) <Self as Template>::render_into_with_values(self, writer, values)
} }
#[inline]
#[cfg(feature = "std")] #[cfg(feature = "std")]
fn dyn_write_into(&self, writer: &mut dyn io::Write) -> io::Result<()> { fn dyn_write_into(&self, writer: &mut dyn io::Write) -> io::Result<()> {
<Self as Template>::write_into(self, writer) <Self as Template>::write_into(self, writer)
@ -513,6 +517,7 @@ const _: () = {
} }
impl FastWritable for fmt::Arguments<'_> { impl FastWritable for fmt::Arguments<'_> {
#[inline]
fn write_into<W: fmt::Write + ?Sized>( fn write_into<W: fmt::Write + ?Sized>(
&self, &self,
dest: &mut W, dest: &mut W,

View File

@ -7,11 +7,15 @@ use crate::Error;
pub const NO_VALUES: &dyn Values = &(); pub const NO_VALUES: &dyn Values = &();
/// Try to find `key` in `values` and then to convert it to `T`. /// Try to find `key` in `values` and then to convert it to `T`.
#[inline]
pub fn get_value<T: Any>(values: &dyn Values, key: impl AsRef<str>) -> Result<&T, Error> { pub fn get_value<T: Any>(values: &dyn Values, key: impl AsRef<str>) -> Result<&T, Error> {
let Some(src) = values.get_value(key.as_ref()) else { values
return Err(Error::ValueMissing); .get_value(key.as_ref())
}; .ok_or(Error::ValueMissing)
.and_then(convert_value)
}
fn convert_value<T: Any>(src: &dyn Any) -> Result<&T, Error> {
if let Some(value) = src.downcast_ref::<T>() { if let Some(value) = src.downcast_ref::<T>() {
return Ok(value); return Ok(value);
} else if let Some(value) = src.downcast_ref::<&T>() { } else if let Some(value) = src.downcast_ref::<&T>() {
@ -90,6 +94,7 @@ where
K: Borrow<str>, K: Borrow<str>,
V: Value, V: Value,
{ {
#[inline]
fn get_value<'a>(&'a self, key: &str) -> Option<&'a dyn Any> { fn get_value<'a>(&'a self, key: &str) -> Option<&'a dyn Any> {
find_value_linear(self.iter(), key) find_value_linear(self.iter(), key)
} }