In Rust, it is normally not possible or at least very difficult to create structs where one field references another, and if you were to create a future that borrows some field, awaits a future, and uses the borrowed field, the resulting future will need to have a field with a reference to another.
This is the challenge and async await lets you make this kind of self referential types without unsafe code.
This is the challenge and async await lets you make this kind of self referential types without unsafe code.