[][src]Crate context_coroutine

#context-coroutine

Provides coroutines using the trait Coroutine.

Coroutines use a separate, special stack.

Implement this trait and then call Coroutine::start_coroutine(), passing in start arguments and a stack.

For a simple coroutine, use the stack stacks::ProtectedStack.

The module context provides lower-level logic to use as a building block for things other than coroutines, for example, fibres.

This crate was originally a simple set of extensions to the context crate to provide stackful coroutines. The developers are not associated with the authors of context but are extremely grateful for the work they've put into to a superb piece of code.

Modules

context

Context; derived from Boost.Context and context-rs.

stacks

Stack implementations.

Structs

StartedCoroutineInstance

Holds a stack and a type-safe transfer of a started coroutine; suitable for the ultimate owner of a coroutine.

Yielder

A simple structure to make it easy to 'yield' from a coroutine.

Enums

ResumeOutcome

Outcome of a coroutine's resumption.

StartOutcome

Outcome of a coroutine's start.

Traits

Coroutine

A trait that stackful coroutines should implement.