this post was submitted on 03 Aug 2023
10 points (100.0% liked)

Rust Programming

8172 readers
20 users here now

founded 5 years ago
MODERATORS
 

I haven't had this much trouble since Ada coding in 1986 when I was age 16.

Can someone please help me get the procedural syntax right?

https://github.com/LemmyNet/lemmy/pull/3805

you are viewing a single comment's thread
view the rest of the comments
[โ€“] nous@programming.dev 3 points 1 year ago (1 children)

Flow control like return and break work differently in async blocks. They are much closer to closures than blocks in this regard. And need to be as they are lazily evaluated (like closures) and may even be evaluated well after the code that contains them has finished.

[โ€“] TehPers@beehaw.org 1 points 1 year ago

Looks like labels don't work on async blocks, but using a nested inner block does work. Also, yeah, async blocks only exist to create Futures, they don't execute until you start polling them. I don't really see any reason why you couldn't stick a label on the async block itself though, breaking would at worst just create one new state for the future - early returned.