Current section
Files
Jump to
Current section
Files
src/pears@input.erl
-module(pears@input).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([get/1, get_n/2, next/1, next_n/2, at_end/1]).
-export_type([input/1]).
-type input(FWG) :: {input, list(FWG), integer()}.
-spec get(input(FWH)) -> gleam@option:option(FWH).
get(Input) ->
_pipe = erlang:element(2, Input),
_pipe@1 = gleam@iterator:from_list(_pipe),
_pipe@2 = gleam@iterator:at(_pipe@1, erlang:element(3, Input)),
gleam@option:from_result(_pipe@2).
-spec get_n(input(FWK), integer()) -> list(FWK).
get_n(Input, N) ->
_pipe = erlang:element(2, Input),
_pipe@1 = gleam@list:drop(_pipe, erlang:element(3, Input)),
gleam@list:take(_pipe@1, N).
-spec next(input(FWN)) -> input(FWN).
next(Input) ->
erlang:setelement(3, Input, erlang:element(3, Input) + 1).
-spec next_n(input(FWQ), integer()) -> input(FWQ).
next_n(Input, N) ->
erlang:setelement(3, Input, erlang:element(3, Input) + N).
-spec at_end(input(any())) -> boolean().
at_end(Input) ->
erlang:element(3, Input) >= erlang:length(erlang:element(2, Input)).