Is it possible to write a simple iteration API that hides implementation details and lets users break and continue?
Here's a new article about a lightweight solution using a `ControlFlow` enumeration!
How to break or continue from a lambda loop?
by Vittorio Romeo
From the article:
Here’s an encapsulation challenge that I frequently run into: how to let users iterate over an internal data structure without leaking implementation details, but still giving them full control over the loop?
Implementing a custom iterator type requires significant boilerplate and/or complexity, depending on the underlying data structure.
Coroutines are simple and elegant, but the codegen is atrocious – definitely unsuitable for hot paths.
Add a Comment