diff --git a/packages/core/src/hotreload_utils.rs b/packages/core/src/hotreload_utils.rs index 86e901d65..43dde887c 100644 --- a/packages/core/src/hotreload_utils.rs +++ b/packages/core/src/hotreload_utils.rs @@ -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>, -{ - ::deserialize(deserializer) - .map(|s| Box::leak(Box::new(s)) as &'static str) -} diff --git a/packages/core/src/nodes.rs b/packages/core/src/nodes.rs index 2e8048d6d..1303b391b 100644 --- a/packages/core/src/nodes.rs +++ b/packages/core/src/nodes.rs @@ -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, },