@raggi Thanks for the comment!
I'm a bit concerned about code generation but obviously my concerns might not have as much as weight as I think they do now :-) [never mind to get things wrong, that's why I say a lot of stupid things on Internet so that I continue learning]
C or and Rust without async is for me like that if I look at a patch, i.e. just the diff I can get idea the structure of generated assembly code, as long as I know also the CPU architecture and calling convention reasonably well. For me code with async is not as predictable because vast amount of code generation but maybe with more practice and disassembling such changes that radar would improve over time 🙂
I have to say that best learning exercise using Rust was to write an executor. Took like couple of afternoons to get it working and learned how Future, Pin and other traits play in that game. If I had not done the exercise, I would be still hitting my head against the wall on that topic. That and grasping std::marker::PhantomData can get one far with Rust 🙂