| name: range |
| returns: range |
| since: 0.58.0 |
| description: | |
| Return an opaque object that can be only be used in `foreach` statements. |
| |
| <pre><code class="language-meson">[[@range]] range([[@int]] <b>stop</b>) |
| [[@range]] range([[@int]] <b>start</b>, [[@int]] <b>stop</b>[, [[@int]] <b>step</b>])</code></pre> |
| |
| - `start` must be integer greater or equal to 0. Defaults to 0. |
| - `stop` must be integer greater or equal to `start`. |
| - `step` must be integer greater or equal to 1. Defaults to 1. |
| |
| It cause the `foreach` loop to be called with the value from `start` included |
| to `stop` excluded with an increment of `step` after each loop. |
| |
| example: | |
| ```meson |
| # Loop 15 times with i from 0 to 14 included. |
| foreach i : range(15) |
| ... |
| endforeach |
| ``` |
| |
| The range object can also be assigned to a variable and indexed. |
| ```meson |
| r = range(5, 10, 2) |
| assert(r[2] == 9) |
| ``` |
| |
| optargs: |
| start: |
| type: int |
| default: 0 |
| description: The start of the range |
| |
| stop: |
| type: int |
| description: The end of the range |
| |
| step: |
| type: int |
| default: 1 |
| description: The loop increment |