reduced redundancy in callback handling, also renamed callback function to the more clear fold

This commit is contained in:
alisdair sullivan 2010-05-26 06:31:15 -07:00
parent 7d5ccfd86f
commit 1c5f54574c
2 changed files with 49 additions and 49 deletions

View file

@ -36,9 +36,12 @@ decoder(Opts) ->
F = fun(eof, State) -> lists:reverse(State) ;(Event, State) -> [Event] ++ State end,
decoder({F, []}, Opts).
decoder(Callbacks, OptsList) when is_list(OptsList) ->
decoder({F, _} = Callbacks, OptsList) when is_list(OptsList), is_function(F) ->
Opts = parse_opts(OptsList),
decoder(Callbacks, Opts);
decoder({{Mod, Fun}, State}, OptsList) when is_list(OptsList), is_atom(Mod), is_atom(Fun) ->
Opts = parse_opts(OptsList),
decoder({fun(E, S) -> Mod:Fun(E, S) end, State}, Opts);
decoder(Callbacks, Opts) ->
case Opts#opts.encoding of
utf8 ->