Range
The range module provides range operations for the Crux programming language.
Installation
use new_range from "crux:range";
Functions
new_range
Creates a new range object.
let r = new_range(0, 10, 1) // 0 to 10, step 1
let r2 = new_range(10, 0, -1) // 10 to 0, step -1
let r3 = new_range(0, 10, 2) // 0, 2, 4, 6, 8
Parameters:
start(Int): Start of the rangeend(Int): End of the rangestep(Int): Step value (cannot be zero)
Returns: Result<Range>
Errors: Step cannot be zero, start cannot be greater than end when step is positive, start cannot be less than end when step is negative.
Methods
contains
Checks if a value is contained within a range.
let r = new_range(0, 10, 1)
let has_5 = r.contains(5) // true
let has_15 = r.contains(15) // false
Parameters:
value(Int): The value to check
Returns: Bool
to_array
Converts a range to an array.
let r = new_range(0, 5, 1)
let arr = r.to_array() // [0, 1, 2, 3, 4]
Returns: Array
Errors: Failed to add element to array.
start
Returns the start value of a range.
let r = new_range(5, 10, 1)
let s = r.start() // 5
Returns: Int
end
Returns the end value of a range.
let r = new_range(5, 10, 1)
let e = r.end() // 10
Returns: Int
step
Returns the step value of a range.
let r = new_range(0, 10, 2)
let s = r.step() // 2
Returns: Int
is_empty
Returns true if the range is empty.
let r = new_range(5, 1, 1) // empty (start > end with positive step)
let empty = r.is_empty() // true
let r2 = new_range(0, 5, 1)
let not_empty = r2.is_empty() // false
Returns: Bool
reversed
Returns a reversed range.
let r = new_range(0, 5, 1)
let rev = r.reversed() // Range from 4 to -1 with step -1
Returns: Range