-module(gary@array). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([create/1, create_fixed_size/2, from_list/2, from_dict/2, to_list/1, to_dict/1, to_keylist/1, to_list_without_defaults/1, to_dict_without_defaults/1, to_keylist_without_defaults/1, map/2, sparse_map/2, fold/3, fold_right/3, sparse_fold/3, sparse_fold_right/3, get_size/1, get_count/1, get_default/1, is_fixed_size/1, set/3, drop/2, get/2, make_fixed/1, make_extensible/1, resize_to_fit/1, set_size/2]). -export_type([array_error/0]). -type array_error() :: index_out_of_range | bad_size. -file("/home/wsl/gleam/gary/src/gary/array.gleam", 38). -spec create(FPW) -> gary:erlang_array(FPW). create(Default) -> array:new([{default, Default}]). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 44). -spec create_fixed_size(integer(), FPY) -> {ok, gary:erlang_array(FPY)} | {error, array_error()}. create_fixed_size(Size, Default) -> gleam@bool:guard( Size < 0, {error, bad_size}, fun() -> {ok, array:new(Size, [{default, Default}])} end ). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 63). -spec from_list(list(FQC), FQC) -> gary:erlang_array(FQC). from_list(List, Default) -> array:from_list(List, Default). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 78). -spec from_dict(gleam@dict:dict(integer(), FQF), FQF) -> {ok, gary:erlang_array(FQF)} | {error, array_error()}. from_dict(Dict, Default) -> gleam@bool:guard( gleam@list:any(gleam@dict:keys(Dict), fun(K) -> K < 0 end), {error, index_out_of_range}, fun() -> _pipe = Dict, _pipe@1 = maps:to_list(_pipe), _pipe@2 = array:from_orddict(_pipe@1, Default), {ok, _pipe@2} end ). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 105). -spec to_list(gary:erlang_array(FQL)) -> list(FQL). to_list(Array) -> array:to_list(Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 111). -spec to_dict(gary:erlang_array(FQO)) -> gleam@dict:dict(integer(), FQO). to_dict(Array) -> _pipe = Array, _pipe@1 = array:to_orddict(_pipe), maps:from_list(_pipe@1). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 119). -spec to_keylist(gary:erlang_array(FQS)) -> list({integer(), FQS}). to_keylist(Array) -> array:to_orddict(Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 134). -spec to_list_without_defaults(gary:erlang_array(FQV)) -> list(FQV). to_list_without_defaults(Array) -> array:sparse_to_list(Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 139). -spec to_dict_without_defaults(gary:erlang_array(FQY)) -> gleam@dict:dict(integer(), FQY). to_dict_without_defaults(Array) -> _pipe = Array, _pipe@1 = array:sparse_to_orddict(_pipe), maps:from_list(_pipe@1). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 148). -spec to_keylist_without_defaults(gary:erlang_array(FRC)) -> list({integer(), FRC}). to_keylist_without_defaults(Array) -> array:sparse_to_orddict(Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 188). -spec map(gary:erlang_array(FRP), fun((integer(), FRP) -> FRR)) -> gary:erlang_array(FRR). map(Array, Function) -> array:map(Function, Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 196). -spec sparse_map(gary:erlang_array(FRT), fun((integer(), FRT) -> FRV)) -> gary:erlang_array(FRV). sparse_map(Array, Function) -> array:sparse_map(Function, Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 205). -spec fold(gary:erlang_array(FRX), FRZ, fun((integer(), FRX, FRZ) -> FRZ)) -> FRZ. fold(Array, Initial, Function) -> array:foldl(Function, Initial, Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 215). -spec fold_right(gary:erlang_array(FSA), FSC, fun((integer(), FSA, FSC) -> FSC)) -> FSC. fold_right(Array, Initial, Function) -> array:foldr(Function, Initial, Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 225). -spec sparse_fold( gary:erlang_array(FSD), FSF, fun((integer(), FSD, FSF) -> FSF) ) -> FSF. sparse_fold(Array, Initial, Function) -> array:sparse_foldl(Function, Initial, Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 235). -spec sparse_fold_right( gary:erlang_array(FSG), FSI, fun((integer(), FSG, FSI) -> FSI) ) -> FSI. sparse_fold_right(Array, Initial, Function) -> array:sparse_foldr(Function, Initial, Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 259). -spec get_size(gary:erlang_array(any())) -> integer(). get_size(Array) -> array:size(Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 264). -spec get_count(gary:erlang_array(any())) -> integer(). get_count(Array) -> sparse_fold(Array, 0, fun(_, _, Acc) -> Acc + 1 end). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 269). -spec get_default(gary:erlang_array(FSR)) -> FSR. get_default(Array) -> array:default(Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 274). -spec is_fixed_size(gary:erlang_array(any())) -> boolean(). is_fixed_size(Array) -> array:is_fix(Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 156). -spec set(gary:erlang_array(FRF), integer(), FRF) -> {ok, gary:erlang_array(FRF)} | {error, array_error()}. set(Array, Index, Item) -> gleam@bool:guard( Index < 0, {error, index_out_of_range}, fun() -> gleam@bool:guard( is_fixed_size(Array) andalso (Index >= get_size(Array)), {error, index_out_of_range}, fun() -> {ok, array:set(Index, Item, Array)} end ) end ). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 172). -spec drop(gary:erlang_array(FRK), integer()) -> {ok, gary:erlang_array(FRK)} | {error, array_error()}. drop(Array, Index) -> gleam@bool:guard( Index < 0, {error, index_out_of_range}, fun() -> gleam@bool:guard( is_fixed_size(Array) andalso (Index >= get_size(Array)), {error, index_out_of_range}, fun() -> {ok, array:reset(Index, Array)} end ) end ). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 247). -spec get(gary:erlang_array(FSJ), integer()) -> {ok, FSJ} | {error, array_error()}. get(Array, Index) -> gleam@bool:guard( Index < 0, {error, index_out_of_range}, fun() -> gleam@bool:guard( is_fixed_size(Array) andalso (Index >= get_size(Array)), {error, index_out_of_range}, fun() -> {ok, array:get(Index, Array)} end ) end ). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 280). -spec make_fixed(gary:erlang_array(FSV)) -> gary:erlang_array(FSV). make_fixed(Array) -> array:fix(Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 285). -spec make_extensible(gary:erlang_array(FSY)) -> gary:erlang_array(FSY). make_extensible(Array) -> array:relax(Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 292). -spec resize_to_fit(gary:erlang_array(FTB)) -> gary:erlang_array(FTB). resize_to_fit(Array) -> array:resize(Array). -file("/home/wsl/gleam/gary/src/gary/array.gleam", 298). -spec set_size(gary:erlang_array(FTE), integer()) -> {ok, gary:erlang_array(FTE)} | {error, array_error()}. set_size(Array, Size) -> gleam@bool:guard( Size < 0, {error, bad_size}, fun() -> {ok, array:resize(Size, Array)} end ).