pub enum Effect<M> {
Show 17 variants
None,
Task {
id: EffectId,
run: TaskFn<M>,
},
RegisteredTask {
id: EffectId,
},
EnvTask {
id: EffectId,
run: EnvTaskFn<M>,
},
RegisteredEnvTask {
id: EffectId,
},
RegisteredRun {
id: EffectId,
},
Batch(Vec<Effect<M>>),
Cancellable {
id: EffectId,
cancel_in_flight: bool,
inner: Box<Effect<M>>,
},
Debounce {
id: EffectId,
duration: Duration,
inner: Box<Effect<M>>,
},
Throttle {
id: EffectId,
duration: Duration,
latest: bool,
inner: Box<Effect<M>>,
},
Provide {
env: Environment,
inner: Box<Effect<M>>,
},
Retry {
attempts: u32,
inner: Box<Effect<M>>,
},
Timeout {
duration: Duration,
inner: Box<Effect<M>>,
},
Sequence(Vec<Effect<M>>),
Race(Vec<Effect<M>>),
Catch {
inner: Box<Effect<M>>,
recover: fn(EffectError) -> Effect<M>,
},
Cancel {
id: EffectId,
},
}Expand description
Pure effect descriptions — interpreted only in runtime.rs.
Effect::merge/Effect::batch— run children concurrently (UDF merge).Effect::concatenate/Effect::sequence— run children in order (UDF concatenate).
Variants§
None
Task
RegisteredTask
EnvTask
RegisteredEnvTask
RegisteredRun
Batch(Vec<Effect<M>>)
Cancellable
Debounce
Throttle
Provide
Retry
Timeout
Sequence(Vec<Effect<M>>)
Race(Vec<Effect<M>>)
Catch
Cancel
Implementations§
Source§impl<M> Effect<M>
impl<M> Effect<M>
pub fn none() -> Self
pub fn task(id: EffectId, run: TaskFn<M>) -> Self
pub fn from_fn<F>(run: F) -> Self
pub fn env_task(id: EffectId, run: EnvTaskFn<M>) -> Self
pub fn from_env_fn<F>(run: F) -> Self
pub fn from_run<F>(run: F) -> Self
Sourcepub fn task_try(id: EffectId, run: TaskFn<M>) -> Self
pub fn task_try(id: EffectId, run: TaskFn<M>) -> Self
Single-shot async task (alias for Effect::task).
Sourcepub fn result_task<T, E>(
run: TaskFn<Result<T, E>>,
on_ok: fn(T) -> M,
on_err: fn(E) -> M,
) -> Self
pub fn result_task<T, E>( run: TaskFn<Result<T, E>>, on_ok: fn(T) -> M, on_err: fn(E) -> M, ) -> Self
Map a Result<T, E> leaf task into M via fn pointers (UDF TaskResult).
pub fn batch(effects: impl IntoIterator<Item = Effect<M>>) -> Self
pub fn merge(effects: impl IntoIterator<Item = Effect<M>>) -> Self
pub fn concatenate(effects: impl IntoIterator<Item = Effect<M>>) -> Self
pub fn map<N>(self, f: fn(M) -> N) -> Effect<N>
pub fn cancellable(id: EffectId, inner: Effect<M>) -> Self
pub fn cancellable_with( id: EffectId, cancel_in_flight: bool, inner: Effect<M>, ) -> Self
pub fn debounce(id: EffectId, duration: Duration, inner: Effect<M>) -> Self
pub fn throttle( id: EffectId, duration: Duration, latest: bool, inner: Effect<M>, ) -> Self
pub fn cancel(id: EffectId) -> Self
pub fn provide(env: Environment, inner: Effect<M>) -> Self
Sourcepub fn provide_dependency<D: Send + Sync + 'static>(
value: D,
inner: Effect<M>,
) -> Self
pub fn provide_dependency<D: Send + Sync + 'static>( value: D, inner: Effect<M>, ) -> Self
Scoped single-dependency override (UDF dependency override / withDependencies).
pub fn retry(attempts: u32, inner: Effect<M>) -> Self
pub fn timeout(duration: Duration, inner: Effect<M>) -> Self
pub fn sequence(effects: impl IntoIterator<Item = Effect<M>>) -> Self
pub fn race(effects: impl IntoIterator<Item = Effect<M>>) -> Self
pub fn catch(inner: Effect<M>, recover: fn(EffectError) -> Effect<M>) -> Self
Trait Implementations§
Auto Trait Implementations§
impl<M> !RefUnwindSafe for Effect<M>
impl<M> !UnwindSafe for Effect<M>
impl<M> Freeze for Effect<M>
impl<M> Send for Effect<M>
impl<M> Sync for Effect<M>
impl<M> Unpin for Effect<M>
impl<M> UnsafeUnpin for Effect<M>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more