-type options() ::
#{null_terms => list(),
encode_binary => encode_fun(Input :: binary()),
encode_atom => encode_fun(Input :: atom()),
encode_integer => encode_fun(Input :: integer()),
encode_float => encode_fun(Input :: float()),
encode_list => encode_fun(Input :: list()),
encode_map => encode_fun(Input :: map()),
encode_datetime => encode_fun(Input :: calendar:datetime()),
encode_timestamp => encode_fun(Input :: erlang:timestamp()),
encode_unhandled => encode_fun(Input :: term()),
escape_binary => escape_fun(Input :: binary())}.