joka.ranges
The ranges module includes functions that work with ranges.
enum ArgType
Types 13
structNumericRange(I)
structArrayRange(T)
structEnumeratedRange(R)
structFilterRange(R, F)
structChainRange(R1, R2) if (is(typeof(R1.front()) == typeof(R2.front())))
structStrideRange(R)
structAccumulateRange(R, F, T)
structChunksRange(R)
enumArgType : ubyte
Command-line argument types.
singleItemA standalone argument (e.g. file.txt)
shortOptionA short option (e.g. -v)
longOptionA long option (e.g. --verbose)
Functions 22
fn
ArgTokenRange argTokens(const(IStr)[] args...) @safe nothrow @nogcReturns a command-line argument token range.fn
EnumeratedRange!R enumerate(R)(R range, Sz start = 0)Returns a range that pairs each element with its iteration index.fn
MapRange!(R, F) map(R, F)(R range, F func)Returns a range that applies a function to each element.fn
FilterRange!(R, F) filter(R, F)(R range, F func)Returns a range that skips elements not satisfying a predicate.fn
T reduce(R, F, T)(R range, F func, T initial)Returns the result of applying a function cumulatively to all elements.fn
TakeRange!R take(R)(R range, Sz count)Returns a range that stops after a given number of elements.fn
R dropWhile(R, F)(R range, F func)Returns a range with leading elements skipped while a predicate holds.fn
ChainRange!(R1, R2) chain(R1, R2)(R1 range1, R2 range2)Returns a range that iterates over two ranges in sequence.fn
AccumulateRange!(R, F, T) accumulate(R, F, T)(R range, F func, T initial)Returns a range that yields the running result of applying a function cumulatively.