Skip to content

Commit c3ad2cb

Browse files
committed
implement Collectable
1 parent 628d1b5 commit c3ad2cb

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

lib/impls/collectable.ex

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
defimpl Collectable, for: Qex do
2+
def into(%Qex{} = qex) do
3+
{qex, &push/2}
4+
end
5+
6+
defp push(q, {:cont, item}), do: Qex.push(q, item)
7+
defp push(q, :done), do: q
8+
defp push(_q, :halt), do: :ok
9+
end

lib/queue.ex renamed to lib/qex.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ defmodule Qex do
1010

1111
@opaque t :: %__MODULE__{}
1212

13-
defstruct data: nil
13+
defstruct data: :queue.new
1414

1515
@spec new([term] | Range.t) :: t
1616
def new(init_data \\ [])

0 commit comments

Comments
 (0)