An array of flat tuples.
A flat tuple is like an ordinary OCaml tuple, except it is second class and mutable.
The flat tuples in a Flat_array.t
are layed out sequentially in a single array, with
each flat tuple's components immediately following the components of the prior flat
tuple. A flat tuple is not first class -- one can only refer to a flat tuple via its
index in the array holding it. Flat tuples are mutable via Flat_array.set
.
The type of a flat-tuple array. 'slots
will look like ('a1, ..., 'an) Slots.tn
,
and the array holds flat tuples of type 'a1 * ... * 'an
.
set_to_init t i
sets flat tuple i
to the init
that was supplied to create
.
is_init t i
returns true
iff flat tuple i
's slots are identical to those of
the init
supplied to create
.
get_all_slots t i
allocates a new ordinary OCaml tuple whose components are equal to
the slots of the flat tuple at index i
of t
. This is esentially an allocation
plus a blit from t
to the newly allocated tuple.
set_all_slots t i tuple
sets all slots of the flat tuple at index i
of t
to
their corresponding components of tuple
. This is essentially a blit from tuple
to
t
.
It is required that 0 <= i < length t
.