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>

Name
Purpose
Unmanaged & Blittable

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?