-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.