January 2018
Beginner to intermediate
454 pages
10h 8m
English
In tokio, the object we need to use to manage an event loop is Core. Here's how we start an event loop using tokio (in the main module):
use tokio_core::reactor::Core; fn main() { let mut core = Core::new().expect("Cannot create tokio Core"); if let Err(error) = core.run(server()) { println!("Error running the server: {}", error); } }
We first create a new Core object, and then call the run() method to start the event loop. The latter method will return when the provided future ends. Here, we call server() to get the future, so let's write this function:
use std::io; use futures::prelude::async; #[async] fn server() -> io::Result<()> { Ok(()) }
As you can see, we use the #[async] attribute. Since attributes are ...