Current section

Files

Jump to
gserde src internal@bar_json.erl
Raw

src/internal@bar_json.erl

-module(internal@bar_json).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/internal/bar_json.gleam").
-export([to_json/1, to_string/1, get_decoder_bar/0, from_string/1]).
-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/internal/bar_json.gleam", 6).
?DOC(false).
-spec to_json(internal@bar:bar_json()) -> gleam@json:json().
to_json(T) ->
gleam@json:object(
[{<<"foo"/utf8>>, internal@foo_json:to_json(erlang:element(2, T))}]
).
-file("src/internal/bar_json.gleam", 10).
?DOC(false).
-spec to_string(internal@bar:bar_json()) -> binary().
to_string(T) ->
gleam@json:to_string(to_json(T)).
-file("src/internal/bar_json.gleam", 15).
?DOC(false).
-spec get_decoder_bar() -> gleam@dynamic@decode:decoder(internal@bar:bar_json()).
get_decoder_bar() ->
gleam@dynamic@decode:field(
<<"foo"/utf8>>,
internal@foo_json:get_decoder_foo(),
fun(Foo) -> gleam@dynamic@decode:success({bar, Foo}) end
).
-file("src/internal/bar_json.gleam", 20).
?DOC(false).
-spec from_string(binary()) -> {ok, internal@bar:bar_json()} |
{error, gleam@json:decode_error()}.
from_string(Json_str) ->
gleam@json:parse(Json_str, get_decoder_bar()).