Cuckoo.Bucket

This module implements a Bucket.

Summary

contains?(bucket, element)

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

find(bucket, element)

Tries to find the given element in the bucket

get(bucket, index)

Returns the element at the specified index

has_room?(bucket)

Checks if the bucket has any room left

new(n)

Creates a new bucket with the given size n

reset(bucket, index)

Resets the entry index to the default value

set(bucket, index, element)

Sets the entry index to element

Types

t :: Array.t

Functions

contains?(bucket, element)

Specs:

  • contains?(t, pos_integer) :: boolean

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

Alternatively you can use element in bucket instead of calling this function.

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.