meth enlarge(cap: Int) is abstract
# The current length
- redef readable attr _length: Int
+ redef readable attr _length: Int = 0
redef meth is_empty do return _length == 0
end
# Create an array with some `items'.
- init with(objects: E...)
+ init with_items(objects: E...)
do
_items = objects._items
_capacity = objects._capacity
end
# The internal storage.
- attr _items: NativeArray[E]
+ attr _items: NativeArray[E] = null
# The size of `_items'.
- attr _capacity: Int
+ attr _capacity: Int = 0
end
# An `Iterator' on `AbstractArray'
_index = 0
end
- redef readable attr _index: Int
+ redef readable attr _index: Int = 0
attr _array: AbstractArray[E]
end
end
# The last positive result given by a index(1) call
- attr _last_index: Int
+ attr _last_index: Int = 0
# Where is the `key' in `_item'?
# return -1 if not found
# Native classes ##############################################################
# Subclasses of this class can create native arrays
-class ArrayCapable[E]
+interface ArrayCapable[E]
# Get a new array of `size' elements.
protected meth calloc_array(size: Int): NativeArray[E] is intern
end
# Native C array (void ...).
-class NativeArray[E]
+universal NativeArray[E]
meth [](index: Int): E is intern
meth []=(index: Int, item: E) is intern
meth copy_to(dest: NativeArray[E], length: Int) is intern