added type specs to all publically exported functions
This commit is contained in:
parent
cf38a9a466
commit
aa3385a31d
6 changed files with 136 additions and 2 deletions
|
@ -28,4 +28,104 @@
|
|||
; X == utf32
|
||||
; X == {utf16, little}
|
||||
; X == {utf32, little}
|
||||
).
|
||||
).
|
||||
|
||||
|
||||
-type jsx_opts() :: [jsx_opt()].
|
||||
-type jsx_opt() :: {comments, true | false}
|
||||
| {escaped_unicode, ascii | codepoint | none}
|
||||
| {multi_term, true | false}
|
||||
| {encoding, auto
|
||||
| utf8
|
||||
| utf16
|
||||
| {utf16, little}
|
||||
| utf32
|
||||
| {utf32, little}
|
||||
}.
|
||||
|
||||
|
||||
%% events emitted by the parser and component types
|
||||
-type unicode_codepoint() :: 0..16#10ffff.
|
||||
-type unicode_string() :: [unicode_codepoint()].
|
||||
|
||||
-type jsx_event() :: start_object
|
||||
| end_object
|
||||
| start_array
|
||||
| end_array
|
||||
| end_json
|
||||
| {key, unicode_string()}
|
||||
| {string, unicode_string()}
|
||||
| {integer, unicode_string()}
|
||||
| {float, unicode_string()}
|
||||
| {literal, true}
|
||||
| {literal, false}
|
||||
| {literal, null}.
|
||||
|
||||
|
||||
%% this probably doesn't work properly
|
||||
-type jsx_parser() :: fun((binary()) -> jsx_parser_result()).
|
||||
|
||||
-type jsx_parser_result() ::
|
||||
{event, jsx_event(), fun(() -> jsx_parser_result())}
|
||||
| {incomplete, jsx_parser()}
|
||||
| {error, badjson}.
|
||||
|
||||
|
||||
-type supported_utf() :: utf8
|
||||
| utf16
|
||||
| {utf16, little}
|
||||
| utf32
|
||||
| {utf32, little}.
|
||||
|
||||
|
||||
%% eep0018 json specification
|
||||
-type eep0018() :: eep0018_object() | eep0018_array().
|
||||
|
||||
-type eep0018_array() :: [eep0018_term()].
|
||||
-type eep0018_object() :: [{eep0018_key(), eep0018_term()}].
|
||||
|
||||
-type eep0018_key() :: binary() | atom().
|
||||
|
||||
-type eep0018_term() :: eep0018_array()
|
||||
| eep0018_object()
|
||||
| eep0018_string()
|
||||
| eep0018_number()
|
||||
| true | false | null.
|
||||
|
||||
-type eep0018_string() :: binary().
|
||||
|
||||
-type eep0018_number() :: float() | integer().
|
||||
|
||||
|
||||
-type encoder_opts() :: [encoder_opt()].
|
||||
-type encoder_opt() :: {strict, true | false}
|
||||
| {encoding, supported_utf()}
|
||||
| {space, integer()}
|
||||
| space
|
||||
| {indent, integer()}
|
||||
| indent.
|
||||
|
||||
|
||||
-type decoder_opts() :: [decoder_opt()].
|
||||
-type decoder_opt() :: {strict, true | false}
|
||||
| {comments, true | false}
|
||||
| {encoding, supported_utf()}
|
||||
| {label, atom | binary | existing_atom}
|
||||
| {float, true | false}.
|
||||
|
||||
|
||||
-type verify_opts() :: [verify_opt()].
|
||||
-type verify_opt() :: {strict, true | false}
|
||||
| {encoding, auto | supported_utf()}
|
||||
| {comments, true | false}.
|
||||
|
||||
|
||||
-type format_opts() :: [format_opt()].
|
||||
-type format_opt() :: {strict, true | false}
|
||||
| {encoding, auto | supported_utf()}
|
||||
| {comments, true | false}
|
||||
| {space, integer()}
|
||||
| space
|
||||
| {indent, integer()}
|
||||
| indent
|
||||
| {output_encoding, supported_utf()}.
|
|
@ -26,6 +26,8 @@
|
|||
%% this file ?utfxshould take that into account
|
||||
|
||||
|
||||
-spec parser(OptsList::jsx_opts()) -> jsx_parser().
|
||||
|
||||
%% opts record for decoder
|
||||
-record(opts, {
|
||||
comments = false,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue