From 04dfde559e0172db902c9d4639557e36081e5b5a Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Sun, 17 Jul 2011 01:26:00 -0700 Subject: [PATCH] format/1,2 takes a list of terms as an argument now, in addition to binary json or a jsx_iterator --- src/jsx_format.erl | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/jsx_format.erl b/src/jsx_format.erl index 652fef4..b8ad467 100644 --- a/src/jsx_format.erl +++ b/src/jsx_format.erl @@ -33,12 +33,19 @@ --spec format(JSON::binary(), Opts::format_opts()) -> binary() | iolist() - ; (F::jsx_iterator(), Opts::format_opts()) -> binary() | iolist(). +-spec format(JSON::binary(), Opts::format_opts()) -> + binary() | iolist() + ; (Terms::list(jsx_encodeable()), Opts::format_opts()) -> + binary() | iolist() + ; (F::jsx_iterator(), Opts::format_opts()) -> + binary() | iolist(). format(JSON, OptsList) when is_binary(JSON) -> P = jsx:decoder(extract_parser_opts(OptsList)), format(fun() -> P(JSON) end, OptsList); +format(Terms, OptsList) when is_list(Terms) -> + P = jsx:encoder(), + format(fun() -> P(Terms) end, OptsList); format(F, OptsList) when is_function(F) -> Opts = parse_opts(OptsList, #format_opts{}), {Continue, String} = format_something(F(), Opts, 0),