Modified:
branches/RB-0.2/lib/ewgi/include/ewgi.hrl
Log:
Added dialyzer specs to header file
Modified: branches/RB-0.2/lib/ewgi/include/ewgi.hrl
==============================================================================
--- branches/RB-0.2/lib/ewgi/include/ewgi.hrl (original)
+++ branches/RB-0.2/lib/ewgi/include/ewgi.hrl Tue Nov 18 08:22:00 2008
@@ -63,34 +63,35 @@
%% Convenience records representing request/response contexts
%% @type bag() = list()
--type(bag() :: list()).
+-type bag() :: list().
+-type ewgi_ri_callback() :: fun(('eof' | {data, binary()}) -> iolist() |
ewgi_ri_callback()).
+
%% @type ewgi_read_input() = function()
--type(ewgi_read_input() :: fun((function(), integer()) -> function())).
+-type ewgi_read_input() :: fun((ewgi_ri_callback(), integer()) ->
ewgi_ri_callback()).
%% @type ewgi_write_error() = function()
--type(ewgi_write_error() :: fun((any()) -> any())).
+-type ewgi_write_error() :: fun((any()) -> 'ok').
%% @type ewgi_version() = {integer(), integer()}
--type(ewgi_version() :: {integer(), integer()}).
+-type ewgi_version() :: {integer(), integer()}.
%% @type ewgi_spec() = {'ewgi_spec', function(), function(), string(),
%% ewgi_version(), bag()}
--type(ewgi_spec() :: {'ewgi_spec', ewgi_read_input(), ewgi_write_error(),
- string(), ewgi_version(), bag()}).
+%% -type(ewgi_spec() :: {'ewgi_spec', ewgi_read_input(),
ewgi_write_error(),
+%% string(), ewgi_version(), bag()}).
-record(ewgi_spec, {
- read_input,
- write_error,
- url_scheme,
- version,
- data % dict
- }).
+ read_input :: ewgi_read_input(),
+ write_error :: ewgi_write_error(),
+ url_scheme :: string(),
+ version :: ewgi_version(),
+ data :: bag()}).
%% @type ewgi_header_val() = string() | 'undefined'
--type(ewgi_header_val() :: string() | 'undefined').
+-type ewgi_header_val() :: string() | 'undefined'.
%% @type ewgi_header_key() = string()
--type(ewgi_header_key() :: string()).
+-type ewgi_header_key() :: string().
%% @type ewgi_http_headers() = {'ewgi_http_headers',
%% ewgi_header_val(),
@@ -100,27 +101,22 @@
%% ewgi_header_val(),
%% ewgi_header_val(),
%% bag()}
--type(ewgi_http_headers() :: {'ewgi_http_headers', ewgi_header_val(),
- ewgi_header_val(), ewgi_header_val(),
- ewgi_header_val(), ewgi_header_val(),
- ewgi_header_val(), bag()}).
-record(ewgi_http_headers, {
- http_accept,
- http_cookie,
- http_host,
- http_if_modified_since,
- http_user_agent,
- http_x_http_method_override,
- other % dict
- }).
+ http_accept :: ewgi_header_val(),
+ http_cookie :: ewgi_header_val(),
+ http_host :: ewgi_header_val(),
+ http_if_modified_since :: ewgi_header_val(),
+ http_user_agent :: ewgi_header_val(),
+ http_x_http_method_override :: ewgi_header_val(),
+ other :: bag()}).
%% @type ewgi_request_method() = 'OPTIONS' | 'GET' | 'HEAD' | 'POST'
| 'PUT' |
%% 'DELETE' | 'TRACE' | 'CONNECT' | string()
--type(ewgi_request_method() :: 'OPTIONS' | 'GET' | 'HEAD' | 'POST' | 'PUT'
|
- 'DELETE' | 'TRACE' | 'CONNECT' | string()).
+-type ewgi_request_method() :: 'OPTIONS' | 'GET' | 'HEAD' | 'POST' | 'PUT'
|
+ 'DELETE' | 'TRACE' | 'CONNECT' | string().
%% @type ewgi_val() = string() | 'undefined'
--type(ewgi_val() :: string() | 'undefined').
+-type ewgi_val() :: string() | 'undefined'.
%% @type ewgi_request() :: {'ewgi_request', ewgi_val(), integer(),
ewgi_val(),
%% ewgi_spec(), ewgi_val(), ewgi_http_headers(),
@@ -128,65 +124,50 @@
%% ewgi_val(), ewgi_val(), ewgi_val(), ewgi_val(),
%% ewgi_request_method(), ewgi_val(), ewgi_val(),
%% ewgi_val(), ewgi_val(), ewgi_val()}
--type(ewgi_request() :: {'ewgi_request', ewgi_val(), integer(), ewgi_val(),
- ewgi_spec(), ewgi_val(), ewgi_http_headers(),
- ewgi_val(), ewgi_val(), ewgi_val(), ewgi_val(),
- ewgi_val(), ewgi_val(), ewgi_val(), ewgi_val(),
- ewgi_request_method(), ewgi_val(), ewgi_val(),
- ewgi_val(), ewgi_val(), ewgi_val()}).
-record(ewgi_request, {
- auth_type,
- content_length,
- content_type,
- ewgi=#ewgi_spec{},
- gateway_interface,
- http_headers=#ewgi_http_headers{},
- path_info,
- path_translated,
- query_string,
- remote_addr,
- remote_host,
- remote_ident,
- remote_user,
- remote_user_data,
- request_method,
- script_name,
- server_name,
- server_port,
- server_protocol,
- server_software
- }).
+ auth_type :: ewgi_val(),
+ content_length :: integer(),
+ content_type :: ewgi_val(),
+ ewgi = #ewgi_spec{} :: #ewgi_spec{},
+ gateway_interface :: ewgi_val(),
+ http_headers = #ewgi_http_headers{} :: #ewgi_http_headers{},
+ path_info :: ewgi_val(),
+ path_translated :: ewgi_val(),
+ query_string :: ewgi_val(),
+ remote_addr :: ewgi_val(),
+ remote_host :: ewgi_val(),
+ remote_ident :: ewgi_val(),
+ remote_user :: ewgi_val(),
+ remote_user_data :: ewgi_val(),
+ request_method :: ewgi_request_method(),
+ script_name :: ewgi_val(),
+ server_name :: ewgi_val(),
+ server_port :: ewgi_val(),
+ server_protocol :: ewgi_val(),
+ server_software :: ewgi_val()}).
%% @type stream() = function()
-%% NOTE: function() should actually be stream() but it appears to break
-%% dialyzer at the time of writing.
--type(stream() :: fun(() -> {} | {any(), function()})).
+-type stream() :: fun(() -> {} | {any(), stream()}).
%% @type ewgi_status() = {integer(), string()}
--type(ewgi_status() :: {integer(), string()}).
+-type ewgi_status() :: {integer(), string()}.
%% @type ewgi_message_body() = binary() | iolist() | stream()
--type(ewgi_message_body() :: binary() | iolist() | stream()).
+-type ewgi_message_body() :: binary() | iolist() | stream().
%% @type ewgi_response() = {'ewgi_response', ewgi_status(),
%% [{ewgi_header_key(), ewgi_header_val()}],
%% ewgi_message_body(), any()}
--type(ewgi_response() :: {'ewgi_response', ewgi_status(),
- [{ewgi_header_key(), ewgi_header_val()}],
- ewgi_message_body(), any()}).
-record(ewgi_response, {
- status,
- headers=[],
- message_body,
- err
- }).
+ status :: ewgi_status(),
+ headers = [] :: [{ewgi_header_key(), ewgi_header_val()}],
+ message_body :: ewgi_message_body(),
+ err :: any()}).
%% @type ewgi_context() = {'ewgi_context', ewgi_request(), ewgi_response()}
--type(ewgi_context() :: {'ewgi_context', ewgi_request(), ewgi_response()}).
-record(ewgi_context, {
- request,
- response
- }).
+ request = #ewgi_request{} :: #ewgi_request{},
+ response = #ewgi_response{} :: #ewgi_response{}}).
%% @type ewgi_app() = function()
--type(ewgi_app() :: fun((ewgi_context()) -> ewgi_context())).
+-type ewgi_app() :: fun((ewgi_context()) -> ewgi_context()).