is there a way to make this work without trait objects?

seen from United States
seen from Australia
seen from United States

seen from United Kingdom
seen from Yemen
seen from United States
seen from United States
seen from Bosnia & Herzegovina

seen from United Kingdom
seen from United States
seen from United States
seen from Saudi Arabia

seen from Germany
seen from France

seen from Brazil

seen from Malaysia

seen from United States

seen from United Kingdom

seen from United States
seen from Brazil
is there a way to make this work without trait objects?
Working in the fall with rust and mustard.
is there a better way?
is it, in principle, possible to write a rust macro that recursively converts a synchronous function to async (fn -> async fn, iter -> stream, read -> asyncread, await everywhere, etc)?
is there a better way to do this?