A `while let` loop is equivalent to a `loop` expression containing a [`match`
expression] as follows.
+<!-- ignore: expansion example -->
```rust,ignore
'label: while let PATS = EXPR {
/* loop body */
is equivalent to
+<!-- ignore: expansion example -->
```rust,ignore
'label: loop {
match EXPR {
A for loop is equivalent to the following block expression.
+<!-- ignore: expansion example -->
```rust,ignore
'label: for PATTERN in iter_expr {
/* loop body */
is equivalent to
+<!-- ignore: expansion example -->
```rust,ignore
{
let result = match IntoIterator::into_iter(iter_expr) {