-module(json_canvas). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([decoder/1, decode/1]). -export_type([canvas/0]). -type canvas() :: {canvas, list(json_canvas@node:node_()), list(json_canvas@edge:edge())}. -spec decoder(gleam@dynamic:dynamic_()) -> {ok, canvas()} | {error, list(gleam@dynamic:decode_error())}. decoder(Dyn) -> _pipe = Dyn, (gleam@dynamic:decode2( fun(Field@0, Field@1) -> {canvas, Field@0, Field@1} end, gleam@dynamic:field( <<"nodes"/utf8>>, gleam@dynamic:list(fun json_canvas@node:decode_node/1) ), gleam@dynamic:field( <<"edges"/utf8>>, gleam@dynamic:list(fun json_canvas@edge:decode_edge/1) ) ))(_pipe). -spec decode(binary()) -> {ok, canvas()} | {error, gleam@json:decode_error()}. decode(Json_canvas) -> _pipe = Json_canvas, gleam@json:decode(_pipe, fun decoder/1).