Current section

Files

Jump to
pears src pears@input.erl
Raw

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(FJS) :: {input, list(FJS), integer()}.
-spec get(input(FJT)) -> gleam@option:option(FJT).
get(Input) ->
_pipe = erlang:element(2, Input),
_pipe@1 = gleam@list:at(_pipe, erlang:element(3, Input)),
gleam@option:from_result(_pipe@1).
-spec get_n(input(FJW), integer()) -> list(FJW).
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(FJZ)) -> input(FJZ).
next(Input) ->
erlang:setelement(3, Input, erlang:element(3, Input) + 1).
-spec next_n(input(FKC), integer()) -> input(FKC).
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) >= gleam@list:length(erlang:element(2, Input)).