punt validity of naked values to user level, they are now always valid in decoding
This commit is contained in:
parent
6e16ce0943
commit
6d90c49be3
3 changed files with 7 additions and 11 deletions
|
@ -60,9 +60,6 @@ parse_opts([{comments, Value}|Rest], Opts) ->
|
||||||
parse_opts([{escaped_unicode, Value}|Rest], Opts) ->
|
parse_opts([{escaped_unicode, Value}|Rest], Opts) ->
|
||||||
true = lists:member(Value, [ascii, codepoint, none]),
|
true = lists:member(Value, [ascii, codepoint, none]),
|
||||||
parse_opts(Rest, Opts#opts{escaped_unicode = Value});
|
parse_opts(Rest, Opts#opts{escaped_unicode = Value});
|
||||||
parse_opts([{naked_values, Value}|Rest], Opts) ->
|
|
||||||
true = lists:member(Value, [true, false]),
|
|
||||||
parse_opts(Rest, Opts#opts{naked_values = Value});
|
|
||||||
parse_opts([{encoding, Value}|Rest], Opts) ->
|
parse_opts([{encoding, Value}|Rest], Opts) ->
|
||||||
true = lists:member(Value, [utf8]),
|
true = lists:member(Value, [utf8]),
|
||||||
parse_opts(Rest, Opts#opts{encoding = Value});
|
parse_opts(Rest, Opts#opts{encoding = Value});
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
-record(opts, {
|
-record(opts, {
|
||||||
comments = false,
|
comments = false,
|
||||||
escaped_unicode = ascii,
|
escaped_unicode = ascii,
|
||||||
naked_values = false,
|
|
||||||
encoding = utf8
|
encoding = utf8
|
||||||
}).
|
}).
|
||||||
|
|
||||||
|
|
|
@ -43,19 +43,19 @@ start(<<?start_object, Rest/binary>>, Stack, Callbacks, Opts) ->
|
||||||
object(Rest, [key|Stack], fold(start_object, Callbacks), Opts);
|
object(Rest, [key|Stack], fold(start_object, Callbacks), Opts);
|
||||||
start(<<?start_array, Rest/binary>>, Stack, Callbacks, Opts) ->
|
start(<<?start_array, Rest/binary>>, Stack, Callbacks, Opts) ->
|
||||||
array(Rest, [array|Stack], fold(start_array, Callbacks), Opts);
|
array(Rest, [array|Stack], fold(start_array, Callbacks), Opts);
|
||||||
start(<<?quote, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.naked_values == true ->
|
start(<<?quote, Rest/binary>>, Stack, Callbacks, Opts) ->
|
||||||
string(Rest, Stack, Callbacks, Opts, []);
|
string(Rest, Stack, Callbacks, Opts, []);
|
||||||
start(<<$t, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.naked_values == true ->
|
start(<<$t, Rest/binary>>, Stack, Callbacks, Opts) ->
|
||||||
tr(Rest, Stack, Callbacks, Opts);
|
tr(Rest, Stack, Callbacks, Opts);
|
||||||
start(<<$f, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.naked_values == true ->
|
start(<<$f, Rest/binary>>, Stack, Callbacks, Opts) ->
|
||||||
fa(Rest, Stack, Callbacks, Opts);
|
fa(Rest, Stack, Callbacks, Opts);
|
||||||
start(<<$n, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.naked_values == true ->
|
start(<<$n, Rest/binary>>, Stack, Callbacks, Opts) ->
|
||||||
nu(Rest, Stack, Callbacks, Opts);
|
nu(Rest, Stack, Callbacks, Opts);
|
||||||
start(<<?negative, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.naked_values == true ->
|
start(<<?negative, Rest/binary>>, Stack, Callbacks, Opts) ->
|
||||||
negative(Rest, Stack, Callbacks, Opts, "-");
|
negative(Rest, Stack, Callbacks, Opts, "-");
|
||||||
start(<<?zero, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.naked_values == true ->
|
start(<<?zero, Rest/binary>>, Stack, Callbacks, Opts) ->
|
||||||
zero(Rest, Stack, Callbacks, Opts, "0");
|
zero(Rest, Stack, Callbacks, Opts, "0");
|
||||||
start(<<S, Rest/binary>>, Stack, Callbacks, Opts) when ?is_nonzero(S), Opts#opts.naked_values == true ->
|
start(<<S, Rest/binary>>, Stack, Callbacks, Opts) when ?is_nonzero(S) ->
|
||||||
integer(Rest, Stack, Callbacks, Opts, [S]);
|
integer(Rest, Stack, Callbacks, Opts, [S]);
|
||||||
start(<<?solidus, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.comments == true ->
|
start(<<?solidus, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opts.comments == true ->
|
||||||
maybe_comment(Rest, fun(Resume) -> start(Resume, Stack, Callbacks, Opts) end);
|
maybe_comment(Rest, fun(Resume) -> start(Resume, Stack, Callbacks, Opts) end);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue