diff options
| author | Matthew Sackman <matthew@rabbitmq.com> | 2011-10-02 15:13:35 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@rabbitmq.com> | 2011-10-02 15:13:35 +0100 |
| commit | 09226b228402443f2542f3e8d920f1f81cf33ad0 (patch) | |
| tree | f2239944bd09a4f921c2c2674d3bd3ab4b8b3e41 /src/lqueue.erl | |
| parent | 542644446675a7392ab30667b140ab3145bf95c2 (diff) | |
| download | rabbitmq-server-git-09226b228402443f2542f3e8d920f1f81cf33ad0.tar.gz | |
Drop unneeded queue impls, tidy lqueue, add specs etc
Diffstat (limited to 'src/lqueue.erl')
| -rw-r--r-- | src/lqueue.erl | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/lqueue.erl b/src/lqueue.erl index ea54ffd4b9..3ab8c9f089 100644 --- a/src/lqueue.erl +++ b/src/lqueue.erl @@ -21,6 +21,30 @@ -define(QUEUE, queue). +-ifdef(use_specs). + +-export_type([?MODULE/0]). + +-type(?MODULE() :: {non_neg_integer(), ?MODULE()}). +-type(value() :: any()). +-type(result() :: ({'empty', ?MODULE()} | + {{'value', value()}, ?MODULE()})). + +-spec(new/0 :: () -> ?MODULE()). +-spec(is_empty/1 :: (?MODULE()) -> boolean()). +-spec(len/1 :: (?MODULE()) -> non_neg_integer()). +-spec(in/2 :: (value(), ?MODULE()) -> ?MODULE()). +-spec(in_r/2 :: (value(), ?MODULE()) -> ?MODULE()). +-spec(out/1 :: (?MODULE()) -> result()). +-spec(out_r/1 :: (?MODULE()) -> result()). +-spec(join/2 :: (?MODULE(), ?MODULE()) -> ?MODULE()). +-spec(foldl/3 :: (fun ((value(), B) -> B), B, ?MODULE()) -> B). +-spec(foldr/3 :: (fun ((value(), B) -> B), B, ?MODULE()) -> B). +-spec(from_list/1 :: ([value()]) -> ?MODULE()). +-spec(to_list/1 :: (?MODULE()) -> [value()]). + +-endif. + new() -> {0, ?QUEUE:new()}. is_empty({0, _Q}) -> true; |
