Current section
Files
Jump to
Current section
Files
src/yodel@internal@properties.erl
-module(yodel@internal@properties).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/yodel/internal/properties.gleam").
-export([new/0, get/2, insert/3, merge/2, fold/3, size/1, delete/2, insert_string/3, string/2, insert_int/3, int/2, insert_float/3, float/2, insert_bool/3, bool/2, insert_null/2, null/1]).
-export_type([properties/0]).
-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).
-opaque properties() :: {properties,
gleam@dict:dict(binary(), yodel@value:value())}.
-file("src/yodel/internal/properties.gleam", 16).
?DOC(false).
-spec new() -> properties().
new() ->
{properties, maps:new()}.
-file("src/yodel/internal/properties.gleam", 20).
?DOC(false).
-spec get(properties(), binary()) -> {ok, yodel@value:value()} |
{error, yodel@errors:properties_error()}.
get(Props, Path) ->
_pipe = gleam_stdlib:map_get(erlang:element(2, Props), Path),
gleam@result:map_error(_pipe, fun(_) -> {path_not_found, Path} end).
-file("src/yodel/internal/properties.gleam", 28).
?DOC(false).
-spec insert(properties(), binary(), yodel@value:value()) -> properties().
insert(Props, Path, Value) ->
{properties, gleam@dict:insert(erlang:element(2, Props), Path, Value)}.
-file("src/yodel/internal/properties.gleam", 36).
?DOC(false).
-spec merge(properties(), properties()) -> properties().
merge(Old_props, New_props) ->
{properties,
maps:merge(erlang:element(2, Old_props), erlang:element(2, New_props))}.
-file("src/yodel/internal/properties.gleam", 43).
?DOC(false).
-spec fold(properties(), OQT, fun((OQT, binary(), yodel@value:value()) -> OQT)) -> OQT.
fold(Props, Initial, Fun) ->
gleam@dict:fold(erlang:element(2, Props), Initial, Fun).
-file("src/yodel/internal/properties.gleam", 51).
?DOC(false).
-spec size(properties()) -> integer().
size(Props) ->
maps:size(erlang:element(2, Props)).
-file("src/yodel/internal/properties.gleam", 55).
?DOC(false).
-spec delete(properties(), list(yodel@internal@path:path_segment())) -> properties().
delete(Props, Path) ->
{properties,
gleam@dict:delete(
erlang:element(2, Props),
yodel@internal@path:path_to_string(Path)
)}.
-file("src/yodel/internal/properties.gleam", 79).
?DOC(false).
-spec insert_string(properties(), binary(), binary()) -> properties().
insert_string(Props, Path, Value) ->
insert(Props, Path, {string_value, Value}).
-file("src/yodel/internal/properties.gleam", 59).
?DOC(false).
-spec string(list(yodel@internal@path:path_segment()), binary()) -> properties().
string(Path, Value) ->
insert_string(new(), yodel@internal@path:path_to_string(Path), Value).
-file("src/yodel/internal/properties.gleam", 87).
?DOC(false).
-spec insert_int(properties(), binary(), integer()) -> properties().
insert_int(Props, Path, Value) ->
insert(Props, Path, {int_value, Value}).
-file("src/yodel/internal/properties.gleam", 63).
?DOC(false).
-spec int(list(yodel@internal@path:path_segment()), integer()) -> properties().
int(Path, Value) ->
insert_int(new(), yodel@internal@path:path_to_string(Path), Value).
-file("src/yodel/internal/properties.gleam", 95).
?DOC(false).
-spec insert_float(properties(), binary(), float()) -> properties().
insert_float(Props, Path, Value) ->
insert(Props, Path, {float_value, Value}).
-file("src/yodel/internal/properties.gleam", 67).
?DOC(false).
-spec float(list(yodel@internal@path:path_segment()), float()) -> properties().
float(Path, Value) ->
insert_float(new(), yodel@internal@path:path_to_string(Path), Value).
-file("src/yodel/internal/properties.gleam", 103).
?DOC(false).
-spec insert_bool(properties(), binary(), boolean()) -> properties().
insert_bool(Props, Path, Value) ->
insert(Props, Path, {bool_value, Value}).
-file("src/yodel/internal/properties.gleam", 71).
?DOC(false).
-spec bool(list(yodel@internal@path:path_segment()), boolean()) -> properties().
bool(Path, Value) ->
insert_bool(new(), yodel@internal@path:path_to_string(Path), Value).
-file("src/yodel/internal/properties.gleam", 111).
?DOC(false).
-spec insert_null(properties(), binary()) -> properties().
insert_null(Props, Path) ->
insert(Props, Path, null_value).
-file("src/yodel/internal/properties.gleam", 75).
?DOC(false).
-spec null(list(yodel@internal@path:path_segment())) -> properties().
null(Path) ->
insert_null(new(), yodel@internal@path:path_to_string(Path)).