Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Varray.ARRAYSourceThe array will be used partially, with some elements in an undefined state. It is guaranteed that all operations always use valid indexes.
The type of an array.
The type of elements contained in the array.
The size of the array; the maximum number of elements that can be stored inside.
get t i returns the ith element of the array. The elements are numbered from 0 to length t - 1 and the index i is always within this bound: this function can be implemented as an unsafe_get) if available.
set t i v modifies t in place, replacing the element at position i with the value v. From now on, the element at this index is defined. Again, this can be implemented as an unsafe_set without bound checking.
erase_at t i resets the element at position i. It is an opportunity to free the memory of the value t.(i). From now on, the element is undefined and this index will not be accessed again until a write is done.
blit src i dst j n copies the elements from the range i,i+n-1 from the array src to the range j,j+n-1 of the array dst. All the elements copied from src are guaranteed to be in a defined state. After this operation, the corresponding range in dst will be defined. The copied ranges will be valid for each array. Special care is required during the copy since src will often be the same array as dst and the ranges can overlap.