diff --git a/CHANGELOG.md b/CHANGELOG.md index 94d85cb..279b9cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## [Unreleased] +- Remove `AsRef<str>` restriction from `PreEscaped` + [#377](https://github.com/lambda-fairy/maud/pull/377) + ## [0.25.0] - 2023-04-16 - Remove `html_debug!` diff --git a/docs/content/render-trait.md b/docs/content/render-trait.md index 2f536ff..11e3dad 100644 --- a/docs/content/render-trait.md +++ b/docs/content/render-trait.md @@ -64,7 +64,7 @@ use maud::{Markup, PreEscaped, Render}; use pulldown_cmark::{Parser, html}; /// Renders a block of Markdown using `pulldown-cmark`. -struct Markdown<T: AsRef<str>>(T); +struct Markdown<T>(T); impl<T: AsRef<str>> Render for Markdown<T> { fn render(&self) -> Markup { diff --git a/maud/src/lib.rs b/maud/src/lib.rs index 5dd74d0..1b8c494 100644 --- a/maud/src/lib.rs +++ b/maud/src/lib.rs @@ -215,7 +215,7 @@ pub fn display(value: impl Display) -> impl Render { /// A wrapper that renders the inner value without escaping. #[derive(Debug, Clone, Copy)] -pub struct PreEscaped<T: AsRef<str>>(pub T); +pub struct PreEscaped<T>(pub T); impl<T: AsRef<str>> Render for PreEscaped<T> { fn render_to(&self, w: &mut String) { @@ -228,20 +228,20 @@ impl<T: AsRef<str>> Render for PreEscaped<T> { /// The `html!` macro expands to an expression of this type. pub type Markup = PreEscaped<String>; -impl<T: AsRef<str> + Into<String>> PreEscaped<T> { +impl<T: Into<String>> PreEscaped<T> { /// Converts the inner value to a string. pub fn into_string(self) -> String { self.0.into() } } -impl<T: AsRef<str> + Into<String>> From<PreEscaped<T>> for String { +impl<T: Into<String>> From<PreEscaped<T>> for String { fn from(value: PreEscaped<T>) -> String { value.into_string() } } -impl<T: AsRef<str> + Default> Default for PreEscaped<T> { +impl<T: Default> Default for PreEscaped<T> { fn default() -> Self { Self(Default::default()) }