aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dialyzer/test/opaque_tests_SUITE_data/src/my_queue/my_queue_adt.erl
blob: 52688062cef1124dd3b3b9bd8a38fd99d80afe93 (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
-module(my_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.