В Rust Async Await реализован с помощью конечных автоматов. Итак, есть ли способ просмотреть это промежуточное представление конечного автомата для целей обучения?

Вы можете посмотреть выходные данные компилятора MIR. Это графическое представление потока управления с базовыми блоками и переходами. Для функции или блока async вы увидите, что тело MIR начинается с базового блока с терминатором switchInt, то есть таблицы переходов: в зависимости от текущего состояния конечного автомата происходит переход к определенному базовому блоку.
Вы можете увидеть вывод MIR на игровой площадке Rust , выбрав вывод MIR в меню «...» в верхнем левом углу. Альтернативно, вы можете запросить у компилятора Rust выходные данные MIR. См. здесь для более подробной информации, но вызов должен быть таким: rustc [filename].rs --emit mir