Merge branch 'master' into jk/coroutine-coroutineoverhaul

This commit is contained in:
Jonathan Kelley committed 2022-02-26 17:32:11 -05:00
commit 2b17717323
32 files changed
+860 -80

No files matched your search

+2 -1
View File
@@ -3,6 +3,7 @@ use std::{
cell::{Cell, Ref, RefCell, RefMut},
collections::HashSet,
rc::Rc,
sync::Arc,
};
type ProvidedState<T> = RefCell<ProvidedStateInner<T>>;
@@ -10,7 +11,7 @@ type ProvidedState<T> = RefCell<ProvidedStateInner<T>>;
// Tracks all the subscribers to a shared State
pub struct ProvidedStateInner<T> {
value: Rc<RefCell<T>>,
notify_any: Rc<dyn Fn(ScopeId)>,
notify_any: Arc<dyn Fn(ScopeId)>,
consumers: HashSet<ScopeId>,
}
+2 -2
View File
@@ -1,5 +1,5 @@
use dioxus_core::{ScopeState, TaskId};
use std::{any::Any, cell::Cell, future::Future, rc::Rc};
use std::{any::Any, cell::Cell, future::Future, rc::Rc, sync::Arc};
/// A hook that provides a future that will resolve to a value.
///
@@ -55,7 +55,7 @@ pub fn use_future<'a, T: 'static, F: Future<Output = T> + 'static, D: UseFutureD
}
pub struct UseFuture<T> {
update: Rc<dyn Fn()>,
update: Arc<dyn Fn()>,
needs_regen: Cell<bool>,
value: Option<T>,
slot: Rc<Cell<Option<T>>>,
+2 -1
View File
@@ -2,6 +2,7 @@ use dioxus_core::ScopeState;
use std::{
cell::{Ref, RefCell, RefMut},
rc::Rc,
sync::Arc,
};
/// `use_ref` is a key foundational hook for storing state in Dioxus.
@@ -121,7 +122,7 @@ pub fn use_ref<'a, T: 'static>(
/// A type created by the [`use_ref`] hook. See its documentation for more details.
pub struct UseRef<T> {
update: Rc<dyn Fn()>,
update: Arc<dyn Fn()>,
value: Rc<RefCell<T>>,
}
+2 -1
View File
@@ -5,6 +5,7 @@ use std::{
cell::{RefCell, RefMut},
fmt::{Debug, Display},
rc::Rc,
sync::Arc,
};
/// Store state between component renders.
@@ -69,7 +70,7 @@ pub fn use_state<'a, T: 'static>(
pub struct UseState<T: 'static> {
pub(crate) current_val: Rc<T>,
pub(crate) update_callback: Rc<dyn Fn()>,
pub(crate) update_callback: Arc<dyn Fn()>,
pub(crate) setter: Rc<dyn Fn(T)>,
pub(crate) slot: Rc<RefCell<Rc<T>>>,
}