pub fn invoke<'f, T: 'f, F: FnOnce() -> T + 'f>(
mode: &Mode<'f, T>,
task: F,
) -> TExpand description
Function that implements using a reference to a Mode to invoke a task.
Uses the iterator returned by calling ModeCombiner::iter
on the ModeCombiner created by the last Mode::with
invocation to unwrap the ModeCombiner inside out and wrap the submitted
task using ModeWrapper::wrap at each step.
Then calls the produced task or simply calls the submitted task if no ModeWrapper
has been supplied to the Mode.
Mode::with consumes the supplied ModeWrapper
to produce a ModeCombiner. The ModeCombiner is set on the Mode and,
if there already is a ModeCombiner present, combined with the existing ModeCombiner by calling
ModeCombiner::combine. By default this produces a
DelegatingModeCombiner that combines ModeCombiners by
setting the current ModeCombiner as the outer ModeCombiner of the newly added ModeCombiner
so that the iterator walks the ModeCombiners in the reverse order of which they were added, meaning
the ModeCombiner that was added first ends up wrapping the task last, meaning its task will be the
outermost task.