Current section

Files

Jump to
json_canvas src json_canvas.erl
Raw

src/json_canvas.erl

-module(json_canvas).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([decode_canvas/1]).
-export_type([canvas/0]).
-type canvas() :: {canvas,
list(json_canvas@node:node_()),
list(json_canvas@edge:edge())}.
-spec decode_canvas(gleam@dynamic:dynamic_()) -> {ok, canvas()} |
{error, list(gleam@dynamic:decode_error())}.
decode_canvas(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).