aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dialyzer/test/opaque_SUITE_data/src/mixed_opaque/mixed_opaque_queue_adt.erl
blob: ac59f19cd381e0ea9d25933ddb665573dc62ede5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
%%---------------------------------------------------------------------------
%% A clone of 'queue_adt' so as to test its combination with 'rec_adt'
%%---------------------------------------------------------------------------
-module(mixed_opaque_queue_adt).

-export([new/0, add/2, dequeue/1, is_empty/1]).

-opaque my_queue() :: list().

-spec new() -> my_queue().
new() ->
    [].

-spec add(term(), my_queue()) -> my_queue().
add(E, Q) ->
    Q ++ [E].

-spec dequeue(my_queue()) -> {term(), my_queue()}.
dequeue([H|T]) ->
    {H, T}.

-spec is_empty(my_queue()) -> boolean().
is_empty([]) ->
    true;
is_empty([_|_]) ->
    false.