-module(json_canvas@internal@generic_node). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([decode_node_attrs/1]). -export_type([generic_node_attrs/0]). -type generic_node_attrs() :: {generic_node_attrs, json_canvas@types:node_id(), json_canvas@internal@node_type:node_type(), integer(), integer(), integer(), integer(), gleam@option:option(json_canvas@types:color())}. -spec decode_node_attrs(gleam@dynamic:dynamic_()) -> {ok, generic_node_attrs()} | {error, list(gleam@dynamic:decode_error())}. decode_node_attrs(Dyn) -> _pipe = Dyn, (gleam@dynamic:decode7( fun(Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6) -> {generic_node_attrs, Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6} end, gleam@dynamic:field(<<"id"/utf8>>, fun(Dyn@1) -> _pipe@1 = Dyn@1, _pipe@2 = gleam@dynamic:string(_pipe@1), gleam@result:map( _pipe@2, fun(Field@0) -> {node_id, Field@0} end ) end), gleam@dynamic:field( <<"type"/utf8>>, fun json_canvas@internal@node_type:decode_node_type/1 ), gleam@dynamic:field(<<"x"/utf8>>, fun gleam@dynamic:int/1), gleam@dynamic:field(<<"y"/utf8>>, fun gleam@dynamic:int/1), gleam@dynamic:field(<<"width"/utf8>>, fun gleam@dynamic:int/1), gleam@dynamic:field(<<"height"/utf8>>, fun gleam@dynamic:int/1), gleam@dynamic:optional_field( <<"color"/utf8>>, fun(Dyn@2) -> _pipe@3 = Dyn@2, _pipe@4 = gleam@dynamic:string(_pipe@3), gleam@result:map(_pipe@4, fun(Field@0) -> {color, Field@0} end) end ) ))(_pipe).