ecs/sized-storage
src/ecs/sized-storage.tur
SizedDense: phantom-indexed dense storage.
Since: E2c sized-world wiring -- see
defopaque
SizedDense
(SizedDense [n A] :int))
defn
sized-dense-new
(sized-dense-new [n A])
allocate a (SizedDense n A) with `k` slots.
Parameters
| k | number of slots to allocate |
Returns
A fresh (SizedDense n A), all slots cleared (present-bit = 0).
Example
(let [s : (SizedDense (Static 4) int) (sized-dense-new 4)] ...)
Since: E2c
defn
sized-dense-len
(sized-dense-len [n A])
logical length (one past the highest slot written).
Since: E2c
defn
sized-dense-cap
(sized-dense-cap [n A])
physical capacity (matches the phantom `n`).
Since: E2c
defn
sized-dense-set!
(sized-dense-set! [n A])
write a value at slot idx.
Since: E2c
defn
sized-dense-get
(sized-dense-get [n A])
read the value at slot idx (typed A).
Since: E2c
defn
sized-dense-has?
(sized-dense-has? [n A])
is slot idx populated?
Since: E2c
defn
sized-dense-free
(sized-dense-free [n A])
release the storage's backing arrays.
Since: E2c
defn
sized-dense-zip-len
(sized-dense-zip-len [n A B])
the cross-parameter unification probe.
Since: E2c
Internal definitions
__sized-dense-new-raw__sized-dense-len-raw__sized-dense-cap-raw__sized-dense-set!-raw__sized-dense-get-raw__sized-dense-has?-raw__sized-dense-free-raw