diff --git a/dynatos-reactive/src/lib.rs b/dynatos-reactive/src/lib.rs index 4883713..14dca99 100644 --- a/dynatos-reactive/src/lib.rs +++ b/dynatos-reactive/src/lib.rs @@ -78,3 +78,20 @@ pub trait SignalUpdate { where F: FnOnce(&mut Self::Value) -> O; } + +/// Types that may be converted into a subscriber +pub trait IntoSubscriber { + fn into_subscriber(self) -> WeakEffect; +} + +#[duplicate::duplicate_item( + T body; + [ Effect ] [ self.downgrade() ]; + [ &'_ Effect ] [ self.downgrade() ]; + [ WeakEffect ] [ self ]; +)] +impl IntoSubscriber for T { + fn into_subscriber(self) -> WeakEffect { + body + } +} diff --git a/dynatos-reactive/src/signal.rs b/dynatos-reactive/src/signal.rs index eb49acc..da07a87 100644 --- a/dynatos-reactive/src/signal.rs +++ b/dynatos-reactive/src/signal.rs @@ -5,7 +5,7 @@ // Imports use { - crate::{effect, Effect, SignalReplace, SignalSet, SignalUpdate, SignalWith, Trigger, WeakEffect}, + crate::{effect, SignalReplace, SignalSet, SignalUpdate, SignalWith, Trigger}, std::{cell::RefCell, fmt, marker::Unsize, mem, ops::CoerceUnsized, rc::Rc}, }; @@ -115,20 +115,3 @@ impl fmt::Debug for Signal { .finish() } } - -/// Types that may be converted into a subscriber -pub trait IntoSubscriber { - fn into_subscriber(self) -> WeakEffect; -} - -#[duplicate::duplicate_item( - T body; - [ Effect ] [ self.downgrade() ]; - [ &'_ Effect ] [ self.downgrade() ]; - [ WeakEffect ] [ self ]; -)] -impl IntoSubscriber for T { - fn into_subscriber(self) -> WeakEffect { - body - } -} diff --git a/dynatos-reactive/src/trigger.rs b/dynatos-reactive/src/trigger.rs index 45e2958..d08db53 100644 --- a/dynatos-reactive/src/trigger.rs +++ b/dynatos-reactive/src/trigger.rs @@ -5,7 +5,7 @@ // Imports use { - crate::{Effect, WeakEffect}, + crate::{IntoSubscriber, WeakEffect}, std::{cell::RefCell, collections::HashSet, fmt, rc::Rc}, }; @@ -90,28 +90,12 @@ impl fmt::Debug for Trigger { } } -/// Types that may be converted into a subscriber -pub trait IntoSubscriber { - fn into_subscriber(self) -> WeakEffect; -} - -#[duplicate::duplicate_item( - T body; - [ Effect ] [ self.downgrade() ]; - [ &'_ Effect ] [ self.downgrade() ]; - [ WeakEffect ] [ self ]; -)] -impl IntoSubscriber for T { - fn into_subscriber(self) -> WeakEffect { - body - } -} - #[cfg(test)] mod test { // Imports use { super::*, + crate::Effect, std::{cell::Cell, mem}, };