Arch.LowLevel
Arch.LowLevel, a collection of unmanaged and unsafe collections.
Arch.Extended
also has a number of high-performance, unsafe collections and utils. They are mostly blittable
, unmanaged
and use pointers directly to access memory. This has the advantage that they are fast and not affected by the GC.
Data-structures:
UnsafeArray<T>
UnsafeList<T>
UnsafeStack<T>
UnsafeQueue<T>
UnsafeJaggedArray<T>
JaggedArray<T>
SparseJaggedArray<T>
UnsafeArray<T>
An unmanaged Array.
✅
UnsafeList<T>
An unmanaged List.
✅
UnsafeStack<T>
An unmanaged Stack.
✅
UnsafeQueue<T>
An unmanaged Queue.
✅
UnsafeJaggedArray<T>
An unmanaged JaggedArray, made out of buckets.
✅
UnsafeSparseJaggedArray<T>
An unmanaged SparseJaggedArray, made out of buckets.
✅
JaggedArray<T>
A managed JaggedArray, made out of buckets.
❌
SparseJaggedArray<T>
A managed SparseJaggedArray, made out of buckets.
❌
Array
A class that either stores its items automatically in an UnsafeArray
or an managed Array
.
❌
Resources
A class that stores managed items and returns a Handle<T>
to reference them in components.
❌
Examples
The use of collections is actually a matter of course. Nevertheless, let's take a look at the most important ones.
Array
List
Resources
Thanks to the Resources
, you can access and use a managed resource from anywhere using a unique ID. This saves memory and is blittable, so it can also be used in unsafe code.
Last updated
Was this helpful?