Oh my god, async closures in rust such a pain