src/automata@rrule@next.erl

-module(automata@rrule@next).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/automata/rrule/next.gleam").
-export([next_after/2]).

-file("src/automata/rrule/next.gleam", 6).
-spec next_after(
    automata@rrule@normalize:r_rule_plan(),
    automata@schedule@ast:date_time()
) -> gleam@option:option(automata@schedule@ast:date_time()).
next_after(Plan, After) ->
    case automata@rrule@iterator:step(
        automata@rrule@iterator:'after'(
            Plan,
            {exclusive, automata@schedule@ast:unsafe_assume_valid(After)}
        )
    ) of
        {yield, At, _} ->
            {some, automata@schedule@ast:valid_datetime_value(At)};

        done ->
            none
    end.