7676% % Encoding implementation
7777% %
7878
79- -type encoder () :: fun ((dynamic (), encoder ()) -> iodata ()).
79+ -type encoder () :: fun ((any (), encoder ()) -> iodata ()).
8080
8181-type encode_value () ::
8282 integer ()
9393-spec encode (encode_value ()) -> iodata ().
9494encode (Term ) -> encode (Term , fun do_encode /2 ).
9595
96- -spec encode (dynamic (), encoder ()) -> iodata ().
96+ -spec encode (any (), encoder ()) -> iodata ().
9797encode (Term , Encoder ) when is_function (Encoder , 2 ) ->
9898 Encoder (Term , Encoder ).
9999
100- -spec encode_value (dynamic (), encoder ()) -> iodata ().
100+ -spec encode_value (any (), encoder ()) -> iodata ().
101101encode_value (Value , Encode ) ->
102102 do_encode (Value , Encode ).
103103
104- -spec do_encode (dynamic (), encoder ()) -> iodata ().
104+ -spec do_encode (any (), encoder ()) -> iodata ().
105105do_encode (Value , Encode ) when is_atom (Value ) ->
106106 encode_atom (Value , Encode );
107107do_encode (Value , _Encode ) when is_binary (Value ) ->
@@ -141,7 +141,7 @@ do_encode_list([First | Rest], Encode) when is_function(Encode, 2) ->
141141list_loop ([], _Encode ) -> " ]" ;
142142list_loop ([Elem | Rest ], Encode ) -> [$, , Encode (Elem , Encode ) | list_loop (Rest , Encode )].
143143
144- -spec encode_map (encode_map (dynamic ()), encoder ()) -> iodata ().
144+ -spec encode_map (encode_map (any ()), encoder ()) -> iodata ().
145145encode_map (Map , Encode ) when is_map (Map ) ->
146146 do_encode_map (Map , Encode ).
147147
@@ -390,13 +390,13 @@ error_info(Skip) ->
390390-define (ARRAY , array ).
391391-define (OBJECT , object ).
392392
393- -type from_binary_fun () :: fun ((binary ()) -> dynamic ()).
394- -type array_start_fun () :: fun ((Acc :: dynamic ()) -> ArrayAcc :: dynamic ()).
395- -type array_push_fun () :: fun ((Value :: dynamic (), Acc :: dynamic ()) -> NewAcc :: dynamic ()).
396- -type array_finish_fun () :: fun ((ArrayAcc :: dynamic (), OldAcc :: dynamic ()) -> {dynamic (), dynamic ()}).
397- -type object_start_fun () :: fun ((Acc :: dynamic ()) -> ObjectAcc :: dynamic ()).
398- -type object_push_fun () :: fun ((Key :: dynamic (), Value :: dynamic (), Acc :: dynamic ()) -> NewAcc :: dynamic ()).
399- -type object_finish_fun () :: fun ((ObjectAcc :: dynamic (), OldAcc :: dynamic ()) -> {dynamic (), dynamic ()}).
393+ -type from_binary_fun () :: fun ((binary ()) -> any ()).
394+ -type array_start_fun () :: fun ((Acc :: any ()) -> ArrayAcc :: any ()).
395+ -type array_push_fun () :: fun ((Value :: any (), Acc :: any ()) -> NewAcc :: any ()).
396+ -type array_finish_fun () :: fun ((ArrayAcc :: any (), OldAcc :: any ()) -> {any (), any ()}).
397+ -type object_start_fun () :: fun ((Acc :: any ()) -> ObjectAcc :: any ()).
398+ -type object_push_fun () :: fun ((Key :: any (), Value :: any (), Acc :: any ()) -> NewAcc :: any ()).
399+ -type object_finish_fun () :: fun ((ObjectAcc :: any (), OldAcc :: any ()) -> {any (), any ()}).
400400
401401-type decoders () :: #{
402402 array_start => array_start_fun (),
@@ -424,7 +424,7 @@ error_info(Skip) ->
424424 null = null :: term ()
425425}).
426426
427- -type acc () :: dynamic ().
427+ -type acc () :: any ().
428428-type stack () :: [? ARRAY | ? OBJECT | binary () | acc ()].
429429-type decode () :: # decode {}.
430430
@@ -454,8 +454,8 @@ decode(Binary) when is_binary(Binary) ->
454454 error (unexpected_end )
455455 end .
456456
457- -spec decode (binary (), dynamic (), decoders ()) ->
458- {Result :: dynamic (), Acc :: dynamic (), binary ()}.
457+ -spec decode (binary (), any (), decoders ()) ->
458+ {Result :: any (), Acc :: any (), binary ()}.
459459decode (Binary , Acc0 , Decoders ) when is_binary (Binary ) ->
460460 Decode = maps :fold (fun parse_decoder /3 , # decode {}, Decoders ),
461461 case value (Binary , Binary , 0 , Acc0 , [], Decode ) of
@@ -469,14 +469,14 @@ decode(Binary, Acc0, Decoders) when is_binary(Binary) ->
469469 Result
470470 end .
471471
472- -spec decode_start (binary (), dynamic (), decoders ()) ->
473- {Result :: dynamic (), Acc :: dynamic (), binary ()} | {continue , continuation_state ()}.
472+ -spec decode_start (binary (), any (), decoders ()) ->
473+ {Result :: any (), Acc :: any (), binary ()} | {continue , continuation_state ()}.
474474decode_start (Binary , Acc , Decoders ) when is_binary (Binary ) ->
475475 Decode = maps :fold (fun parse_decoder /3 , # decode {}, Decoders ),
476476 value (Binary , Binary , 0 , Acc , [], Decode ).
477477
478478-spec decode_continue (binary () | end_of_input , Opaque :: term ()) ->
479- {Result :: dynamic (), Acc :: dynamic (), binary ()} | {continue , continuation_state ()}.
479+ {Result :: any (), Acc :: any (), binary ()} | {continue , continuation_state ()}.
480480decode_continue (end_of_input , State ) ->
481481 case State of
482482 {_ , Acc , [], _Decode , {number , Val }} ->
@@ -675,7 +675,7 @@ string_ascii(Binary, Original, Skip, Acc, Stack, Decode, Len) ->
675675 string (Other , Original , Skip , Acc , Stack , Decode , Len )
676676 end .
677677
678- -spec string (binary (), binary (), integer (), acc (), stack (), decode (), integer ()) -> dynamic ().
678+ -spec string (binary (), binary (), integer (), acc (), stack (), decode (), integer ()) -> any ().
679679string (<<Byte , Rest /bits >>, Orig , Skip , Acc , Stack , Decode , Len ) when ? is_ascii_plain (Byte ) ->
680680 string (Rest , Orig , Skip , Acc , Stack , Decode , Len + 1 );
681681string (<<$\\ , Rest /bits >>, Orig , Skip , Acc , Stack , Decode , Len ) ->
@@ -718,7 +718,7 @@ string_ascii(Binary, Original, Skip, Acc, Stack, Decode, Start, Len, SAcc) ->
718718 string (Other , Original , Skip , Acc , Stack , Decode , Start , Len , SAcc )
719719 end .
720720
721- -spec string (binary (), binary (), integer (), acc (), stack (), decode (), integer (), integer (), binary ()) -> dynamic ().
721+ -spec string (binary (), binary (), integer (), acc (), stack (), decode (), integer (), integer (), binary ()) -> any ().
722722string (<<Byte , Rest /bits >>, Orig , Skip , Acc , Stack , Decode , Start , Len , SAcc ) when ? is_ascii_plain (Byte ) ->
723723 string (Rest , Orig , Skip , Acc , Stack , Decode , Start , Len + 1 , SAcc );
724724string (<<$\\ , Rest /bits >>, Orig , Skip , Acc , Stack , Decode , Start , Len , SAcc ) ->
0 commit comments