fix issue 1586 followup (#2733)

This commit is contained in:
Adam Kundrát authored and GitHub committed 2024-07-29 13:00:59 -07:00
1 parent b7127ad6ae
commit a1dfc4b4f0
2 files changed
+1 -17

No files matched your search

-16
View File
@@ -71,19 +71,3 @@ pub enum FmtSegment {
id: usize,
},
}
/// A helper function for deserializing to a `&'static str`.
/// Parses escaped characters (like `"\n"` or `"\t"`),
/// which cannot be done in-place using the default serde json deserializer.
///
/// **Leaks the memory** in order to achieve a `'static` reference.
///
/// Solves [this issue](https://github.com/DioxusLabs/dioxus/issues/1586).
#[doc(hidden)]
pub fn static_str_deserializer<'de, D>(deserializer: D) -> Result<&'static str, D::Error>
where
D: serde::de::Deserializer<'de>,
{
<String as serde::Deserialize>::deserialize(deserializer)
.map(|s| Box::leak(Box::new(s)) as &'static str)
}
+1 -1
View File
@@ -523,7 +523,7 @@ pub enum TemplateNode {
/// This template node is just a piece of static text
Text {
/// The actual text
#[serde(deserialize_with = "crate::hotreload_utils::static_str_deserializer")]
#[serde(deserialize_with = "deserialize_string_leaky")]
text: &'static str,
},