3 ms·
First, congrats! The first example of reading a file in sync vs async really makes me feel like you could have a macro of sorts that just lets you write the sy
by ecnahc515 7y ago
First, congrats!
The first example of reading a file in sync vs async really makes me feel like you could have a macro of sorts that just lets you write the sync version and have it generate the async version (assuming you only use the stdlib IO based APIs). Usage of threads could even be converted to tasks, etc.
I'm sure it falls apart in various places, but it would really make async (in Rust) a lot more approachable. At which point you have something very similar to how Go does things, which I think is potentially very nice.
- Matthias247 7y ago> you could have a macro of sorts that just lets you write the sync version and have it generate the async version That sounds like a good idea in theory. In practice you will discover that async is a bit different. E.g. you can't have recursive functions, some new lifetime effects will come into play (an async fn returns a Future, and everything that generated Future captures lifetimes of other things). async/await made async programming in rust definitely a lot more accessible! But at some times the lower layers still leak through and cause some unexpected compilation errors.
- ecnahc515 7y agoThanks for the explanation. I was curious what specific flaws there would be in such a design, and what you said makes sense. Perhaps something doable with more thought and features to support it in the future!