Skip to content

Commit dcc7ad0

Browse files
committed
VIP - Add join_to_list for :queue
1 parent a937051 commit dcc7ad0

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

lib/modules/queue_assistant.ex

+11-1
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,8 @@ defmodule QueueAssistant do
387387
# [2, 3, 4, 5]
388388
```
389389
"""
390-
@spec out(queue_type()) :: {:empty | {:value, any()}, queue_type()}
390+
@dialyzer {:nowarn_function, out: 1}
391+
@spec out(queue_type()) :: {:empty, {[], []}} | {{:value, any()}, queue_type()}
391392
def out(queue) do
392393
:queue.out(queue)
393394
end
@@ -607,6 +608,15 @@ defmodule QueueAssistant do
607608
:queue.peek_r(queue)
608609
end
609610

611+
@doc """
612+
Please see `join/2` and `to_list/1`.
613+
"""
614+
@spec join_to_list(queue_type(), queue_type()) :: list(any())
615+
def join_to_list(queue, queue1) do
616+
:queue.join(queue, queue1)
617+
|> :queue.to_list()
618+
end
619+
610620
# The "Okasaki API" is inspired by "Purely Functional Data Structures" by Chris Okasaki.
611621
# It regards queues as lists. This API is by many regarded as strange and avoidable.
612622
# For example, many reverse operations have lexically reversed names, some with more

0 commit comments

Comments
 (0)