Moved AsyncSignal into it's own crate.

This commit is contained in:
Filipe Rodrigues 2024-12-28 07:17:18 +00:00
parent 7398a7e34c
commit 55af4a5f11
Signed by: zenithsiz
SSH Key Fingerprint: SHA256:Mb5ppb3Sh7IarBO/sBTXLHbYEOz37hJAlslLQPPAPaU
9 changed files with 79 additions and 6 deletions

18
Cargo.lock generated
View File

@ -201,6 +201,7 @@ dependencies = [
"anyhow",
"duplicate",
"dynatos-reactive",
"dynatos-reactive-async",
"dynatos-reactive-sync",
"dynatos-util",
"extend",
@ -223,6 +224,23 @@ dependencies = [
"zutil-cloned",
]
[[package]]
name = "dynatos-reactive-async"
version = "0.1.0"
dependencies = [
"duplicate",
"dynatos-context",
"dynatos-reactive",
"dynatos-reactive-sync",
"dynatos-util",
"extend",
"itertools",
"pin-project",
"scopeguard",
"tracing",
"zutil-cloned",
]
[[package]]
name = "dynatos-reactive-sync"
version = "0.1.0"

View File

@ -11,6 +11,7 @@ members = [
"dynatos-html-parser",
"dynatos-loadable",
"dynatos-reactive",
"dynatos-reactive-async",
"dynatos-reactive-sync",
"dynatos-router",
"dynatos-title",
@ -31,6 +32,7 @@ dynatos-html-macros = { path = "dynatos-html-macros" }
dynatos-html-parser = { path = "dynatos-html-parser" }
dynatos-loadable = { path = "dynatos-loadable" }
dynatos-reactive = { path = "dynatos-reactive" }
dynatos-reactive-async = { path = "dynatos-reactive-async" }
dynatos-reactive-sync = { path = "dynatos-reactive-sync" }
dynatos-router = { path = "dynatos-router" }
dynatos-title = { path = "dynatos-title" }

View File

@ -6,6 +6,7 @@ edition = "2021"
[dependencies]
dynatos-reactive = { workspace = true }
dynatos-reactive-async = { workspace = true }
dynatos-reactive-sync = { workspace = true }
dynatos-util = { workspace = true }
@ -18,4 +19,8 @@ tracing = { workspace = true }
workspace = true
[features]
sync = ["dynatos-reactive-sync/sync"]
sync = [
"dynatos-reactive/sync",
"dynatos-reactive-async/sync",
"dynatos-reactive-sync/sync",
]

View File

@ -4,7 +4,8 @@
use {
crate::Loadable,
core::{fmt, ops::Deref},
dynatos_reactive::{async_signal, AsyncSignal, SignalBorrow, SignalWith},
dynatos_reactive::{SignalBorrow, SignalWith},
dynatos_reactive_async::{async_signal, AsyncSignal},
};
/// Loadable signal.

View File

@ -0,0 +1,27 @@
[package]
name = "dynatos-reactive-async"
version = "0.1.0"
edition = "2021"
[dependencies]
dynatos-context = { workspace = true }
dynatos-reactive = { workspace = true }
dynatos-reactive-sync = { workspace = true }
dynatos-util = { workspace = true }
duplicate = { workspace = true }
extend = { workspace = true }
itertools = { workspace = true }
pin-project = { workspace = true }
scopeguard = { workspace = true }
tracing = { workspace = true }
[dev-dependencies]
zutil-cloned = { workspace = true }
[lints]
workspace = true
[features]
sync = ["dynatos-reactive/sync", "dynatos-reactive-sync/sync"]

View File

@ -5,7 +5,6 @@
// Imports
use {
crate::{SignalBorrow, SignalWith, Trigger},
core::{
fmt,
future::{self, Future},
@ -15,6 +14,7 @@ use {
pin::Pin,
task::{self, Poll},
},
dynatos_reactive::{SignalBorrow, SignalWith, Trigger},
dynatos_reactive_sync::{IMut, IMutExt, IMutRef, IMutRefMut, IMutRefMutExt, Rc},
};

View File

@ -0,0 +1,22 @@
//! Asynchronous reactivity for `dynatos`
// Features
#![feature(
unsize,
coerce_unsized,
unboxed_closures,
fn_traits,
test,
thread_local,
cfg_match,
trait_alias,
once_cell_try,
async_fn_traits,
local_waker
)]
// Modules
pub mod async_signal;
// Exports
pub use self::async_signal::AsyncSignal;

View File

@ -23,7 +23,7 @@ use {
sync::atomic::{self, AtomicUsize},
task::{self, Poll},
},
dynatos_reactive::AsyncSignal,
dynatos_reactive_async::AsyncSignal,
zutil_cloned::cloned,
};

View File

@ -16,7 +16,6 @@
)]
// Modules
pub mod async_signal;
pub mod derived;
pub mod effect;
pub mod memo;
@ -26,7 +25,6 @@ pub mod with_default;
// Exports
pub use self::{
async_signal::AsyncSignal,
derived::Derived,
effect::{Effect, WeakEffect},
memo::Memo,