Crate gain[−][src]
Expand description
Gate interface
Asynchronous execution
The task
module provides a framework for spawning and running
asynchronous tasks.
A typical program runs a single top-level task:
use gain::task::{block_on, spawn};
fn main() {
block_on(async {
spawn(concurrent_work());
do_something().await;
})
}
async fn concurrent_work() {
do_stuff().await;
}
Concurrency is achieved by spawning more tasks. The program exits when the top-level task returns.
Service APIs
The catalog
, identity
, origin
,
peer
and peerindex
modules provide access to the
built-in Gate services.
Common I/O stream types are defined in the stream
module.
Service implementation
Additional service bindings can be implemented using the
service
module.
Modules
Programmer-readable catalog of available services.
Identity information for this execution context.
Communicate with the invoker of the program instance.
Communicate with other program instances.
Find other program instances.
Service binding implementation support.
I/O streams.
Types and traits for working with asynchronous tasks.