Agreed, I rewrote a 10k line a js websocket based game server[0] a few months ago into async Rust. It was mostly painless
I didn't have to deal with closures much because I'm comfortable writing a 2000 line match
0: https://github.com/serprex/openEtG/tree/master/src/rs/server