Table of Contents xi 9 Coroutines, Self-Referential Structs, and Pinning 213 Technical requirements 214 Improving our example 1-variables 214 Setting up the base example 215 Improving our base example 217 Improving our example 2-references 222 Improving our example 3-this is... not... good... 227 Discovering self-referential structs 229 What is a move? 231 Pinning in Rust 233Pinning in theory 234 Definitions 234 Pinning to the heap 235 Pinning to the stack 237 Pin projections and structural pinning 240 Improving our example 4-pinning to the rescue 241 future. rs 242 http. rs 242 Main. rs 244 executor. rs 246 Summary 248 10 Creating Your Own Runtime 251 Technical requirements 251 Setting up our example 253 main. rs 253 future. rs 254 http. rs 254 executor. rs 256 reactor. rs 259 Experimenting with our runtime 261 Challenges with asynchronous Rust 265Explicit versus implicit reactor instantiation 265 Ergonomics versus efficiency and flexibility 266 Common traits that everyone agrees about 267 Async drop 268 The future of asynchronous Rust 269 Summary 269 Epilogue 272 Index 275 Other Books You May Enjoy 282