reorder impls

This commit is contained in:
Jonathan Kelley committed 2024-01-26 23:06:30 -08:00
1 parent 974680796f
commit 3ccf520205
1 file changed
+21 -21
+21 -21
View File
@@ -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<T: 'static, S: Storage<SignalData<T>>> From<Signal<T, S>> for ReadOnlySigna
}
}
#[cfg(feature = "serde")]
impl<T: serde::Serialize + 'static, Store: Storage<SignalData<T>>> serde::Serialize
for ReadOnlySignal<T, Store>
{
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
self.read().serialize(serializer)
}
}
#[cfg(feature = "serde")]
impl<'de, T: serde::Deserialize<'de> + 'static, Store: Storage<SignalData<T>>>
serde::Deserialize<'de> for ReadOnlySignal<T, Store>
{
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
Ok(Self::new_maybe_sync(Signal::new_maybe_sync(
T::deserialize(deserializer)?,
)))
}
}
impl<T: 'static> ReadOnlySignal<T> {
/// Create a new read-only signal.
#[track_caller]
@@ -91,6 +71,26 @@ impl<T, S: Storage<SignalData<T>>> Readable<T> for ReadOnlySignal<T, S> {
}
}
#[cfg(feature = "serde")]
impl<T: serde::Serialize + 'static, Store: Storage<SignalData<T>>> serde::Serialize
for ReadOnlySignal<T, Store>
{
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
self.read().serialize(serializer)
}
}
#[cfg(feature = "serde")]
impl<'de, T: serde::Deserialize<'de> + 'static, Store: Storage<SignalData<T>>>
serde::Deserialize<'de> for ReadOnlySignal<T, Store>
{
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
Ok(Self::new_maybe_sync(Signal::new_maybe_sync(
T::deserialize(deserializer)?,
)))
}
}
impl<T> IntoAttributeValue for ReadOnlySignal<T>
where
T: Clone + IntoAttributeValue,