module nxt.static_iota;

/** Static Iota.
    TODO: Add to Phobos.
*/
template iota(size_t from, size_t to)
    if (from <= to)
{
    alias iota = siotaImpl!(to-1, from);
}
private template siotaImpl(size_t to, size_t now)
{
    import std.meta: AliasSeq;
    static if (now >= to) { alias siotaImpl = AliasSeq!(now); }
    else                  { alias siotaImpl = AliasSeq!(now, siotaImpl!(to, now+1)); }
}