pub enum Step {
Done(Result<Value, String>),
Wait(Promise, Box<dyn FnOnce(PromiseState) -> Step>),
Yield(Value, Box<dyn FnOnce(Value) -> Step>),
Continue(Box<dyn FnOnce() -> Step>),
}Variants§
Done(Result<Value, String>)
Wait(Promise, Box<dyn FnOnce(PromiseState) -> Step>)
Yield(Value, Box<dyn FnOnce(Value) -> Step>)
Continue(Box<dyn FnOnce() -> Step>)
Defers the next synchronous continuation to the fiber driver. Without this trampoline, a document with many top-level forms keeps one Rust stack frame per completed form (and can exhaust the smaller WASM stack).
Auto Trait Implementations§
impl !RefUnwindSafe for Step
impl !Send for Step
impl !Sync for Step
impl !UnwindSafe for Step
impl Freeze for Step
impl Unpin for Step
impl UnsafeUnpin for Step
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more