1 /** \mainpage rrq C hacks: Vectors And Such
3 This software is an implementation platform for vector based
6 - \ref itemkeyfun is an implementation of an abstracted type notion
7 that is focussed on what the \ref hashvector needs in terms of
8 callbacks for its separation between the hash management
9 functionality and the contained items. This name is choosen so as to
10 avoid some connotations common to the term "type".
12 - \ref array and \ref vector are two implementations of an abstract
13 array notion using an indexing tree of 16 and 256 pointers
14 respectively. The indexing tree is balanced into levels matching to
15 the needs of the vector size. When the size of a vector is changed
16 then indexing levels are added or removed as needed. However
17 indexing pages are allocated on a needs basis. The level 0 indexing
18 pages hold the actual data as void* pointers
20 - \ref hasharray and \ref hashvector are two implementations of an
21 abstract hashtable using \ref array and \ref vector as backing store
22 respectively. It also uses the \ref itemkeyfn type abstraction of
23 items being compunded as pairs of key and payload. This separates
24 the hashing code from the type abstraction.
26 \subsubsection s0 itemkeyfun actualizations
28 - \ref integeritem is an plain actualization of an itemkeyfun record
29 for integer items other than 0 and 1, i.e. where the void* slots of
30 a tuple are reinterpreted as 64-bit integers rather than "item
33 \note Note that a hashvector cannot directly contain integer items
34 since 0 and 1 are treated as indicating unused and holed slots.
36 - stringitem is a plain actualization of an itemkeyfun record for
37 null-terminated character strings.
39 - tupleschema is a specialization of the itemkeyfun type scheme
40 intended for tuple items that are arrays of items that are further
41 type via itemkeyfun records. A tupleschema actualization includes
42 the applicable arity and an array of pointers to itemkeyfun
43 actualizations that declare the itemkeyfun types of the parts