Current section

Files

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

src/lustre@internals@json_object_builder.erl

-module(lustre@internals@json_object_builder).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-define(FILEPATH, "src/lustre/internals/json_object_builder.gleam").
-export([new/0, json/3, tagged/1, build/1, string/3, int/3, bool/3, list/4, object/3]).
-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).
-file("src/lustre/internals/json_object_builder.gleam", 13).
?DOC(false).
-spec new() -> list({binary(), gleam@json:json()}).
new() ->
[].
-file("src/lustre/internals/json_object_builder.gleam", 25).
?DOC(false).
-spec json(list({binary(), gleam@json:json()}), binary(), gleam@json:json()) -> list({binary(),
gleam@json:json()}).
json(Entries, Key, Value) ->
[{Key, Value} | Entries].
-file("src/lustre/internals/json_object_builder.gleam", 17).
?DOC(false).
-spec tagged(integer()) -> list({binary(), gleam@json:json()}).
tagged(Kind) ->
[{<<"kind"/utf8>>, gleam@json:int(Kind)}].
-file("src/lustre/internals/json_object_builder.gleam", 21).
?DOC(false).
-spec build(list({binary(), gleam@json:json()})) -> gleam@json:json().
build(Entries) ->
gleam@json:object(Entries).
-file("src/lustre/internals/json_object_builder.gleam", 29).
?DOC(false).
-spec string(list({binary(), gleam@json:json()}), binary(), binary()) -> list({binary(),
gleam@json:json()}).
string(Entries, Key, Value) ->
case Value /= <<""/utf8>> of
true ->
[{Key, gleam@json:string(Value)} | Entries];
false ->
Entries
end.
-file("src/lustre/internals/json_object_builder.gleam", 36).
?DOC(false).
-spec int(list({binary(), gleam@json:json()}), binary(), integer()) -> list({binary(),
gleam@json:json()}).
int(Entries, Key, Value) ->
case Value /= 0 of
true ->
[{Key, gleam@json:int(Value)} | Entries];
false ->
Entries
end.
-file("src/lustre/internals/json_object_builder.gleam", 43).
?DOC(false).
-spec bool(list({binary(), gleam@json:json()}), binary(), boolean()) -> list({binary(),
gleam@json:json()}).
bool(Entries, Key, Value) ->
case Value of
true ->
[{Key, gleam@json:int(1)} | Entries];
false ->
Entries
end.
-file("src/lustre/internals/json_object_builder.gleam", 50).
?DOC(false).
-spec list(
list({binary(), gleam@json:json()}),
binary(),
list(MRO),
fun((MRO) -> gleam@json:json())
) -> list({binary(), gleam@json:json()}).
list(Entries, Key, Values, To_json) ->
case Values of
[] ->
Entries;
_ ->
[{Key, gleam@json:array(Values, To_json)} | Entries]
end.
-file("src/lustre/internals/json_object_builder.gleam", 62).
?DOC(false).
-spec object(
list({binary(), gleam@json:json()}),
binary(),
list({binary(), gleam@json:json()})
) -> list({binary(), gleam@json:json()}).
object(Entries, Key, Nested) ->
case Nested of
[] ->
Entries;
_ ->
[{Key, gleam@json:object(Nested)} | Entries]
end.