Technical requirements 253 Other than the differences outlined above, everything else can stay pretty much as is. For the most part, we're renaming and refactoring this time. Now that we've got an idea of what we need to do, it's time to set everything up so we can get our new example up and running. Note Even though we create a runtime to run futures properly in Rust, we still try to keep this simple by avoiding error handling and not focusing on making our runtime more flexible. Improving our runtime is certainly possible, and while it can be a bit tricky at times to use the type system correctly and please the borrow checker, it has relatively little to do with async Rust and more to do with Rust being Rust. Setting up our example Tip Y ou'll find this example in the book's repository in the ch10/a-rust-futures folder. We'll continue where we left off in the last chapter, so let's copy everything we had over to a new project: 1. Create a new folder called a-rust-futures. 2. Copy everything from the example in the previous chapter. If you followed the naming I suggested, it would be stored in the e-coroutines-pin folder. 3. Y ou should now have a folder containing a copy of our previous example, so the last thing to do is to change the project name in Cargo. toml to a-rust-futures. Okay, so let's start with the program we want to run. Open main. rs. main. rs We'll go back to the simplest version of our program and get it running before we try anything more complex. Open main. rs and replace all the code in that file with this: ch10/a-rust-futures/src/main. rs mod http; mod runtime; use crate::http::Http;