Alias std.datetime.interval.PopFirst
Used to indicate whether popFront
should be called immediately upon
creating a range. The idea is that for some functions used to generate a
range for an interval, front
is not necessarily a time point which
would ever be generated by the range (e.g. if the range were every Sunday
within an interval, but the interval started on a Monday), so there needs
to be a way to deal with that. To get the first time point in the range to
match what the function generates, then use PopFirst
to indicate
that the range should have popFront
called on it before the range is
returned so that front
is a time point which the function would
generate. To let the first time point not match the generator function,
use PopFront
.
For instance, if the function used to generate a range of time points
generated successive Easters (i.e. you're iterating over all of the Easters
within the interval), the initial date probably isn't an Easter. Using
PopFirst
would tell the function which returned the range that
popFront
was to be called so that front would then be an Easter - the
next one generated by the function (which when iterating forward would be
the Easter following the original front
, while when iterating backward,
it would be the Easter prior to the original front
). If
PopFirst
were used, then front
would remain the original time
point and it would not necessarily be a time point which would be generated
by the range-generating function (which in many cases is exactly what is
desired - e.g. if iterating over every day starting at the beginning of the
interval).
If set to PopFirst
, then popFront is not called before returning
the range.
Otherwise, if set to PopFirst
, then popFront is called before
returning the range.