Releases: actuate-rs/actuate
Releases · actuate-rs/actuate
actuate-v0.19.1
0.19.1 - 2024-12-09
Features
- Add
use_effect
hook (5ae0a51)fn use_effect<D, T>(cx: ScopeState, dependency: D, effect: impl FnOnce(&D))
Fixes
- Remove
AnyItemState
infrom_iter
composable to pass stacked borrows check in miri (2360814)
Documentation
- Add docs for
from_fn
andfrom_iter
composables (5c379e1)
actuate-v0.19.0
0.19.0 - 2024-12-08
Breaking changes
- Require
'static
items infrom_iter
composable- This prevents edge cases where an item may have been removed from a collection, but references still exist down the tree.
Documentation
actuate-v0.18.0
actuate-v0.17.2
actuate-v0.17.1
0.17.1 - 2024-12-06
Features
-
Create
FromFn
composable- You can now create a composable without input using
from_fn
(433ab1d) -
fn from_fn<F, C>(f: F) -> FromFn<F, C> where F: Fn(ScopeState) -> C, C: Compose
- You can now create a composable without input using
-
Derive
Clone
andDebug
forButton
,Container
, andRadioButton
(4f337ed)
Documentation
- Update docs for feature flags (869aa89)
actuate-v0.17.0
actuate-v0.16.1
actuate-v0.16.0
0.16.0 - 2024-12-05
Breaking changes
- Major internal rewrite! (9ef73eb) The new internals allow for more dynamic control over the composition
, enabling features like pause and resume of a composition.
Composer::try_compose
will now also skip directly to changed composables, rather than setting change flags.- Removes exported methods for
ScopeData
- The
Runtime
struct is now private to ensure safety
- Removes exported methods for
Features
-
Composer
is now an iterator! This allows for stepping through each composable in the composition. -
Composer
also implementsfmt::Debug
:use actuate::prelude::*; use actuate::composer::Composer; #[derive(Data)] struct A; impl Compose for A { fn compose(cx: Scope<Self>) -> impl Compose { (B, C) } } #[derive(Data)] struct B; impl Compose for B { fn compose(cx: Scope<Self>) -> impl Compose {} } #[derive(Data)] struct C; impl Compose for C { fn compose(cx: Scope<Self>) -> impl Compose {} } let mut composer = Composer::new(A); composer.try_compose().unwrap(); assert_eq!(format!("{:?}", composer), "Composer(A(B, C))")
actuate-v0.15.0
0.15.0 - 2024-12-03
Breaking changes
- Add
#[actuate(path = "..")]
attribute toData
macro and use fully-qualified path to Actuate by default (b159478).- This allows for use of the
Data
macro without importing the fullprelude
.
- This allows for use of the
- Replace
DynCompose::new
withdyn_compose
constructor fn (9d65ec8). - Return
Rc
from use_contextfn use_context<T: 'static>(cx: ScopeState) -> Result<&Rc<T>, ContextError<T>> { .. }
- This allows for cloning context into
'static
environments.