Queue (queue v0.1.1) View Source

Module for work queue.

Link to this section Summary

Functions

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

Link to this section Types

Specs

t() :: %Queue{queue: term()}

Link to this section Functions

Specs

empty?(t()) :: boolean()

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

first(t()) :: any()

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

head(t()) :: any()

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

inside(t(), any()) :: any()

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

last(t()) :: any()

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

out(t()) :: any()

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)