blob: 4d9a19a37e83d7196344e4519504e9c137d3cbc6 [file] [log] [blame]
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