diff --git a/packages/signals/src/read_only_signal.rs b/packages/signals/src/read_only_signal.rs index d9cea83aa..68109367b 100644 --- a/packages/signals/src/read_only_signal.rs +++ b/packages/signals/src/read_only_signal.rs @@ -1,5 +1,5 @@ use crate::{read::Readable, Signal, SignalData}; -use std::{mem::MaybeUninit, ops::Deref}; +use std::ops::Deref; use dioxus_core::{prelude::IntoAttributeValue, ScopeId}; use generational_box::{Storage, UnsyncStorage}; @@ -15,26 +15,6 @@ impl>> From> for ReadOnlySigna } } -#[cfg(feature = "serde")] -impl>> serde::Serialize - for ReadOnlySignal -{ - fn serialize(&self, serializer: S) -> Result { - self.read().serialize(serializer) - } -} - -#[cfg(feature = "serde")] -impl<'de, T: serde::Deserialize<'de> + 'static, Store: Storage>> - serde::Deserialize<'de> for ReadOnlySignal -{ - fn deserialize>(deserializer: D) -> Result { - Ok(Self::new_maybe_sync(Signal::new_maybe_sync( - T::deserialize(deserializer)?, - ))) - } -} - impl ReadOnlySignal { /// Create a new read-only signal. #[track_caller] @@ -91,6 +71,26 @@ impl>> Readable for ReadOnlySignal { } } +#[cfg(feature = "serde")] +impl>> serde::Serialize + for ReadOnlySignal +{ + fn serialize(&self, serializer: S) -> Result { + self.read().serialize(serializer) + } +} + +#[cfg(feature = "serde")] +impl<'de, T: serde::Deserialize<'de> + 'static, Store: Storage>> + serde::Deserialize<'de> for ReadOnlySignal +{ + fn deserialize>(deserializer: D) -> Result { + Ok(Self::new_maybe_sync(Signal::new_maybe_sync( + T::deserialize(deserializer)?, + ))) + } +} + impl IntoAttributeValue for ReadOnlySignal where T: Clone + IntoAttributeValue,