Current section

Files

Jump to
lustre src lustre@internals@mutable_map.erl
Raw

src/lustre@internals@mutable_map.erl

-module(lustre@internals@mutable_map).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/lustre/internals/mutable_map.gleam").
-export([new/0, unsafe_get/2, get_or_compute/3, has_key/2, insert/3, delete/2, size/1, is_empty/1]).
-export_type([mutable_map/2]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-type mutable_map(RAP, RAQ) :: any() | {gleam_phantom, RAP, RAQ}.
-file("src/lustre/internals/mutable_map.gleam", 21).
?DOC(false).
-spec new() -> mutable_map(any(), any()).
new() ->
maps:new().
-file("src/lustre/internals/mutable_map.gleam", 26).
?DOC(false).
-spec unsafe_get(mutable_map(RAV, RAW), RAV) -> RAW.
unsafe_get(Map, Key) ->
maps:get(Key, Map).
-file("src/lustre/internals/mutable_map.gleam", 34).
?DOC(false).
-spec get_or_compute(mutable_map(RBD, RBE), RBD, fun(() -> RBE)) -> RBE.
get_or_compute(Map, Key, Compute) ->
case gleam@dict:get(Map, Key) of
{ok, Value} ->
Value;
_ ->
Compute()
end.
-file("src/lustre/internals/mutable_map.gleam", 51).
?DOC(false).
-spec has_key(mutable_map(RBN, any()), RBN) -> boolean().
has_key(Map, Key) ->
maps:is_key(Key, Map).
-file("src/lustre/internals/mutable_map.gleam", 61).
?DOC(false).
-spec insert(mutable_map(RBV, RBW), RBV, RBW) -> mutable_map(RBV, RBW).
insert(Map, Key, Value) ->
maps:put(Key, Value, Map).
-file("src/lustre/internals/mutable_map.gleam", 79).
?DOC(false).
-spec delete(mutable_map(RCH, RCI), RCH) -> mutable_map(RCH, RCI).
delete(Map, Key) ->
maps:remove(Key, Map).
-file("src/lustre/internals/mutable_map.gleam", 90).
?DOC(false).
-spec size(mutable_map(any(), any())) -> integer().
size(Map) ->
maps:size(Map).
-file("src/lustre/internals/mutable_map.gleam", 94).
?DOC(false).
-spec is_empty(mutable_map(any(), any())) -> boolean().
is_empty(Map) ->
maps:size(Map) =:= 0.