-module(jackson@internal@decoder). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([decode/2]). -spec json_to_dynamic(jackson@internal@json:json()) -> gleam@dynamic:dynamic_(). json_to_dynamic(Json) -> case Json of {float, Inner} -> gleam@dynamic:from(Inner); {integer, Inner@1} -> gleam@dynamic:from(Inner@1); {bool, Inner@2} -> gleam@dynamic:from(Inner@2); null -> gleam@dynamic:from(nil); {string, Inner@3} -> gleam@dynamic:from(Inner@3); {array, Inner@4} -> gleam@dynamic:from(gleam@list:map(Inner@4, fun json_to_dynamic/1)); {object, Entries} -> gleam@dynamic:from( gleam@list:map( Entries, fun(Entry) -> gleam@dynamic:from( {erlang:element(1, Entry), json_to_dynamic(erlang:element(2, Entry))} ) end ) ) end. -spec decode( jackson@internal@json:json(), fun((gleam@dynamic:dynamic_()) -> {ok, FQX} | {error, list(gleam@dynamic:decode_error())}) ) -> {ok, FQX} | {error, list(gleam@dynamic:decode_error())}. decode(Json, Decoder) -> To_decode = json_to_dynamic(Json), Decoder(To_decode).