On Monday, 3 October 2022 at 21:06:36 UTC, Ali Çehreli wrote:
On 10/3/22 13:48, Andrey Zherikov wrote:
a "rotated view".

Without indexes:

import std.range : empty;

auto rotatedView(R)(R range)
in (!range.empty)
{
    import std.range : chain, front, only, popFront;
    const fr = range.front;
    range.popFront();
    return chain(range, only(fr));
}

Tiny nitpick: this should use

    const fr = range.save.front;

...to ensure that `fr` is not invaliated or overwritten by the subsequent call to range.popFront (e.g., think of File.byLine here).

Reply via email to