Queue (queue v0.1.2) View Source
Module for work queue.
This module implement protocol Enumerable.
Link to this section Summary
Functions
Returns the size of the queue.
Return the queue is empty
Get first element of queue.
Get head element of queue
Put element in queue
Get last element of queue.
Return new queue structure
Get element of queue
Returns a list with all values of queue.
Returns a list of values. It's equal to to_list/1
Link to this section Types
Specs
t() :: %Queue{queue: term()}
Link to this section Functions
Specs
count(t()) :: non_neg_integer()
Returns the size of the queue.
Examples
iex> queue = Queue.new() |> Queue.inside(1) |> Queue.inside(2)
iex> Queue.count(queue)
2
Specs
Return the queue is empty
Example:
iex> queue = Queue.new()
iex> Queue.empty?(queue)
true
iex> queue = Queue.inside(queue, 1)
iex> Queue.empty?(queue)
false
Specs
Get first element of queue.
This function is equals head function.
Example:
iex> queue = Queue.new() |> Queue.inside(1)
iex> Queue.first(queue)
1
iex> Queue.new() |> Queue.first()
nil
Specs
Get head element of queue
Example:
iex> queue = Queue.new() |> Queue.inside(1)
iex> Queue.head(queue)
1
iex> Queue.new() |> Queue.head()
nil
Specs
Put element in queue
Example:
iex> queue = Queue.new() |> Queue.inside(1)
#Queue<1>
iex> {1, queue} = Queue.out(queue)
iex> queue
#Queue<Empty>
Specs
Get last element of queue.
Example:
iex> queue = Queue.new() |> Queue.inside(1)
iex> Queue.last(queue)
1
iex> queue = Queue.inside(queue, 2)
iex> Queue.last(queue)
2
iex> Queue.new() |> Queue.last()
nil
Specs
new() :: t()
Return new queue structure
Example:
iex> Queue.new()
#Queue<Empty>
Specs
Get element of queue
Example:
iex> queue = Queue.new() |> Queue.inside(1)
#Queue<1>
iex> {1, queue} = Queue.out(queue)
iex> queue
#Queue<Empty>
iex> {nil, ^queue} = Queue.out(queue)
Specs
Returns a list with all values of queue.
Examples:
iex> queue = Queue.new() |> Queue.inside(1) |> Queue.inside(2)
iex> Queue.to_list(queue)
[1, 2]
Specs
Returns a list of values. It's equal to to_list/1
Examples:
iex> queue = Queue.new() |> Queue.inside(1) |> Queue.inside(2)
iex> Queue.values(queue)
[1, 2]