From cbf86ce9e41b8158f56da8f9be3f10fa55ac7e3a Mon Sep 17 00:00:00 2001 From: Jose Quesada Date: Tue, 21 Sep 2021 16:43:05 -0500 Subject: [PATCH 1/2] impl Default for Signal --- packages/sycamore-reactive/src/signal.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/sycamore-reactive/src/signal.rs b/packages/sycamore-reactive/src/signal.rs index 32daa2738..d24e45022 100644 --- a/packages/sycamore-reactive/src/signal.rs +++ b/packages/sycamore-reactive/src/signal.rs @@ -198,6 +198,15 @@ impl Signal { } } +impl Default for Signal +where + T: 'static + Default, +{ + fn default() -> Self { + Self::new(T::default()) + } +} + impl Deref for Signal { type Target = StateHandle; From f944bac81ce46a5a0c581be747411cd712ffefca Mon Sep 17 00:00:00 2001 From: Jose Quesada Date: Wed, 22 Sep 2021 16:50:56 -0500 Subject: [PATCH 2/2] removed static requirement for Signal and impl Default for StateHandle --- packages/sycamore-reactive/src/signal.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/sycamore-reactive/src/signal.rs b/packages/sycamore-reactive/src/signal.rs index d24e45022..7b93d35cb 100644 --- a/packages/sycamore-reactive/src/signal.rs +++ b/packages/sycamore-reactive/src/signal.rs @@ -82,6 +82,12 @@ impl Clone for StateHandle { } } +impl Default for StateHandle { + fn default() -> Self { + Signal::new(T::default()).into_handle() + } +} + impl fmt::Debug for StateHandle { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_tuple("StateHandle") @@ -198,10 +204,7 @@ impl Signal { } } -impl Default for Signal -where - T: 'static + Default, -{ +impl Default for Signal { fn default() -> Self { Self::new(T::default()) }