ecs/sparse
src/ecs/sparse.tur
sparse storage keyed by entity index (Robin Hood).
Since: E1' (initial linear-probe version); rewritten to Robin Hood E1' patch 1.
defopaque
Sparse
(Sparse [A] :int))
defn
sparse-new
(sparse-new [A])
allocate an empty sparse storage. Returns a `(Sparse A)`.
Since: E1' (returned :int); E2d-P1 (returns (Sparse A))
defn
sparse-len
(sparse-len [A])
live entry count.
Since: E1'
defn
sparse-has?
(sparse-has? [A])
is there an entry at this entity index? Short-circuits
Since: E1'
defn
sparse-set!
(sparse-set! [A])
write a value at entity index idx (Robin Hood insert).
Since: E1'
defn
sparse-get
(sparse-get [A])
int-carrier read (raw ints / opaques / pointers).
Since: E1'
defn
sparse-del!
(sparse-del! [A])
remove the entry at idx (returns false if absent).
Since: E1'
defn
sparse-free
(sparse-free [A])
release backing arrays.
Since: E1'