Lucifers,
Let's discuss the public API of VArray. The following methods look OK to me
and should be public:
* Push
* Push_VArray
* Pop
* Unshift
* Shift
* Grow
* Fetch
* Store
* Delete
* Shallow_Copy
* Clone
* Sort
* Clear
* Get_Size
* Slice
* Equals
Regarding the Gather method: I think VA_Gather_Test_t could need an additional
"elem" parameter. If we want to make Gather public, we should also think about
adding other functional style methods like Map. But these methods don't map to
C very well, so I'd suggest to leave them out for now.
Regarding Excise: I think VArray is missing a "splice"-like method. We could
either augment Excise to make it work like splice in Perl, or add an extra
method to insert elements at a certain location (maybe two methods for
inserting single elements and other VArrays).
Regarding out-of-bounds offsets and lengths: This already came up when
discussing the String API. I think the consensus was that out-of-bounds
offsets should be clamped to the start or end of the VArray instead of
throwing an error.
Using uint32_t instead of size_t for array ticks is OK, but I don't have a
strong opinion on this.
Nick