package alba

  1. Overview
  2. Docs

An arrayed pool of elements of a certain type.

type 'a t

Type of the pool.

val make_empty : unit -> 'a t

Make an empty pool.

val capacity : 'a t -> int

The current capacity of the pool.

val has : 'a t -> int -> bool

has p i Has the pool p an element at position i?

val elem : 'a t -> int -> 'a

elem p i The ith element of the pool p.

val find : 'a t -> int -> int

find p i finds the next occupied element in the pool p starting from i. Returns i if i is occupied. Returns capacity if there is no next occupied element.

val iter : ('a -> unit) -> 'a t -> unit

iter f p Iterate over all occupied elements in the pool.

val occupy : 'a t -> 'a -> int

occupy p a occupies a place for the element a and puts it there. If there are no free elements, then allocate space in pool. Return the position of the element a in the pool.

val release : 'a t -> int -> unit

release p i makes the position i in the pool free.