-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.