Current section
Files
Jump to
Current section
Files
src/gleam_synapses@model@encoding@attribute@attribute_serialized.erl
-module(gleam_synapses@model@encoding@attribute@attribute_serialized).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([serialized/1, decoder/0, realized/1]).
-file("/home/dimos/Projects/Gleam/gleam_synapses/src/gleam_synapses/model/encoding/attribute/attribute_serialized.gleam", 9).
-spec serialized(gleam_synapses@model@encoding@attribute@attribute:attribute()) -> gleam@json:json().
serialized(Attr) ->
case Attr of
{discrete, Key, Values} ->
Field = gleam@json:object(
[{<<"key"/utf8>>, gleam@json:string(Key)},
{<<"values"/utf8>>,
begin
_pipe = Values,
_pipe@1 = gleam_zlists:to_list(_pipe),
gleam@json:array(_pipe@1, fun gleam@json:string/1)
end}]
),
gleam@json:object(
[{<<"Case"/utf8>>,
gleam@json:string(<<"SerializableDiscrete"/utf8>>)},
{<<"Fields"/utf8>>,
gleam@json:array([Field], fun gleam@function:identity/1)}]
);
{continuous, Key@1, Min, Max} ->
Field@1 = gleam@json:object(
[{<<"key"/utf8>>, gleam@json:string(Key@1)},
{<<"min"/utf8>>, gleam@json:float(Min)},
{<<"max"/utf8>>, gleam@json:float(Max)}]
),
gleam@json:object(
[{<<"Case"/utf8>>,
gleam@json:string(<<"SerializableContinuous"/utf8>>)},
{<<"Fields"/utf8>>,
gleam@json:array(
[Field@1],
fun gleam@function:identity/1
)}]
)
end.
-file("/home/dimos/Projects/Gleam/gleam_synapses/src/gleam_synapses/model/encoding/attribute/attribute_serialized.gleam", 42).
-spec discrete_field_decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok,
gleam_synapses@model@encoding@attribute@attribute:attribute()} |
{error, list(gleam@dynamic:decode_error())}).
discrete_field_decoder() ->
gleam@dynamic:decode2(
fun(Key, Values) -> {discrete, Key, gleam_zlists:of_list(Values)} end,
gleam@dynamic:field(<<"key"/utf8>>, fun gleam@dynamic:string/1),
gleam@dynamic:field(
<<"values"/utf8>>,
gleam@dynamic:list(fun gleam@dynamic:string/1)
)
).
-file("/home/dimos/Projects/Gleam/gleam_synapses/src/gleam_synapses/model/encoding/attribute/attribute_serialized.gleam", 50).
-spec continuous_field_decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok,
gleam_synapses@model@encoding@attribute@attribute:attribute()} |
{error, list(gleam@dynamic:decode_error())}).
continuous_field_decoder() ->
gleam@dynamic:decode3(
fun(Field@0, Field@1, Field@2) -> {continuous, Field@0, Field@1, Field@2} end,
gleam@dynamic:field(<<"key"/utf8>>, fun gleam@dynamic:string/1),
gleam@dynamic:field(<<"min"/utf8>>, fun gleam@dynamic:float/1),
gleam@dynamic:field(<<"max"/utf8>>, fun gleam@dynamic:float/1)
).
-file("/home/dimos/Projects/Gleam/gleam_synapses/src/gleam_synapses/model/encoding/attribute/attribute_serialized.gleam", 59).
-spec decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok,
gleam_synapses@model@encoding@attribute@attribute:attribute()} |
{error, list(gleam@dynamic:decode_error())}).
decoder() ->
gleam@dynamic:decode2(fun(Case_val, Fields) -> case {Case_val, Fields} of
{<<"SerializableDiscrete"/utf8>>, [Discrete]} ->
Discrete;
{<<"SerializableContinuous"/utf8>>, [Continuous]} ->
Continuous;
{_, _} ->
erlang:error(#{gleam_error => panic,
message => <<"Unknown kind of attribute"/utf8>>,
module => <<"gleam_synapses/model/encoding/attribute/attribute_serialized"/utf8>>,
function => <<"decoder"/utf8>>,
line => 65})
end end, gleam@dynamic:field(
<<"Case"/utf8>>,
fun gleam@dynamic:string/1
), gleam@dynamic:field(
<<"Fields"/utf8>>,
gleam@dynamic:list(
gleam@dynamic:any(
[discrete_field_decoder(), continuous_field_decoder()]
)
)
)).
-file("/home/dimos/Projects/Gleam/gleam_synapses/src/gleam_synapses/model/encoding/attribute/attribute_serialized.gleam", 78).
-spec realized(gleam_synapses@model@encoding@attribute@attribute:attribute()) -> gleam_synapses@model@encoding@attribute@attribute:attribute().
realized(Attr) ->
case Attr of
{discrete, _, Values} ->
gleam_zlists:to_list(Values);
{continuous, _, _, _} ->
[]
end,
Attr.