Moved dynatos_reactive::IntoSubscriber to crate root.

This commit is contained in:
2024-02-27 18:44:08 +00:00
parent e104af7e9a
commit b700a1b93a
3 changed files with 20 additions and 36 deletions

View File

@@ -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<dyn Fn()>;
}
#[duplicate::duplicate_item(
T body;
[ Effect<dyn Fn()> ] [ self.downgrade() ];
[ &'_ Effect<dyn Fn()> ] [ self.downgrade() ];
[ WeakEffect<dyn Fn()> ] [ self ];
)]
impl IntoSubscriber for T {
fn into_subscriber(self) -> WeakEffect<dyn Fn()> {
body
}
}

View File

@@ -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<T: fmt::Debug> fmt::Debug for Signal<T> {
.finish()
}
}
/// Types that may be converted into a subscriber
pub trait IntoSubscriber {
fn into_subscriber(self) -> WeakEffect<dyn Fn()>;
}
#[duplicate::duplicate_item(
T body;
[ Effect<dyn Fn()> ] [ self.downgrade() ];
[ &'_ Effect<dyn Fn()> ] [ self.downgrade() ];
[ WeakEffect<dyn Fn()> ] [ self ];
)]
impl IntoSubscriber for T {
fn into_subscriber(self) -> WeakEffect<dyn Fn()> {
body
}
}

View File

@@ -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<dyn Fn()>;
}
#[duplicate::duplicate_item(
T body;
[ Effect<dyn Fn()> ] [ self.downgrade() ];
[ &'_ Effect<dyn Fn()> ] [ self.downgrade() ];
[ WeakEffect<dyn Fn()> ] [ self ];
)]
impl IntoSubscriber for T {
fn into_subscriber(self) -> WeakEffect<dyn Fn()> {
body
}
}
#[cfg(test)]
mod test {
// Imports
use {
super::*,
crate::Effect,
std::{cell::Cell, mem},
};