Cuckoo.Bucket

This module implements a Bucket.

Summary

Functions

Returns true if the bucket contains the element, otherwise returns false

Tries to find the given element in the bucket

Returns the element at the specified index

Checks if the bucket has any room left

Creates a new bucket with the given size n

Resets the entry index to the default value

Sets the entry index to element

Types

t :: :array.array

Functions

contains?(bucket, element)

Specs

contains?(t, pos_integer) :: boolean

Returns true if the bucket contains the element, otherwise returns false.

find(bucket, element)

Specs

find(t, pos_integer) ::
  {:ok, non_neg_integer} |
  {:error, :inexistent}

Tries to find the given element in the bucket.

Returns {:ok, index} if it finds it, otherwise returns {:error, :inexistent}.

get(bucket, index)

Specs

get(t, non_neg_integer) :: pos_integer

Returns the element at the specified index.

has_room?(bucket)

Specs

has_room?(t) :: {:ok, pos_integer} | {:error, :full}

Checks if the bucket has any room left.

Returns { :ok, index } if it finds an empty entry in the bucket, otherwise returns { :error, :full }.

new(n)

Specs

new(pos_integer) :: t

Creates a new bucket with the given size n.

reset(bucket, index)

Specs

reset(t, non_neg_integer) :: t

Resets the entry index to the default value.

Returns the updated bucket.

set(bucket, index, element)

Specs

set(t, non_neg_integer, pos_integer) :: t

Sets the entry index to element.

Returns the updated bucket.