News for hackers. Stuff that matters.
Re:Async Rust Is A Bad Language by hgomersall on Friday September 08, 2023 @03:26PM (#37438235)
We do not want functions that take floating point arguments, only u32 should be used. And don't get me started on more than one argument!
Re:Async Rust Is A Bad Language by randyrand on Friday September 08, 2023 @07:57PM (#37440789)
you can convert a float to a u32.

you cannot convert an function that calls async code into a sync function.

Re:Async Rust Is A Bad Language by kevingadd on Friday September 08, 2023 @08:22PM (#37440960)
You can call .Wait on the Task it returns :)
Re:Async Rust Is A Bad Language by randyrand on Friday September 08, 2023 @08:37PM (#37441037)
Right, but now you are forced to convert the calling function to async.

u32 / float does not have the problem. It does not "bubble up", unless you want it to.

Re:Async Rust Is A Bad Language by kprotty on Saturday September 09, 2023 @01:19PM (#37447731)
no, .Wait in C# or block_on in Rust keep the caller sync while evaluating the async callee, preventing the "bubble up".
Re:Async Rust Is A Bad Language by hgomersall on Saturday September 09, 2023 @02:02AM (#37442682)
An async function is some syntactic sugar around a sync function that returns a future. You can merrily call one from the other.

You can only convert an int to a float with significant caveats. It's not a general trivial conversion. More complicated types may not be convertible at all or behave in all sorts of exciting ways (including having arbitrary side effects).

The point is that none of that is different to async functions. Of course you have to know what to do with them for them to be useful, but there is no requirement for them to "infect" calling code.