EmbeddedSlotMap

A SlotMap built on a hash table that holds the slots directly rather than wrapping each one in another object. That saves an allocation per property, which measurably pays off.

Constructors

Link copied to clipboard
constructor()
constructor(capacity: Int)

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
open override fun add(owner: SlotMapOwner?, newSlot: Slot)

Puts a slot straight in. Both its name and its index hash have to be set already. ScriptableObject normally goes through modify instead.

Link copied to clipboard
open override fun <S : Slot> compute(owner: SlotMapOwner?, mutableMap: CompoundOperationMap, key: Any?, index: Int, compute: SlotMap.SlotComputer<S>): S?

open fun <S : Slot> compute(owner: SlotMapOwner, key: Any?, index: Int, compute: SlotMap.SlotComputer<S>): S?

Replaces what key maps to with whatever compute returns: null removes the mapping, and anything else replaces or creates it. If compute throws, nothing changes.

Link copied to clipboard
open fun dirtySize(): Int

The size before any pending compound operation is folded back in.

Link copied to clipboard
open override fun isEmpty(): Boolean

Whether there are no slots at all.

Link copied to clipboard
open operator override fun iterator(): Iterator<Slot>
Link copied to clipboard
open override fun modify(owner: SlotMapOwner?, key: Any?, index: Int, attributes: Int): Slot

The slot for key, or for index when key is null, creating one if it is not there yet.

Link copied to clipboard
open override fun query(key: Any?, index: Int): Slot?

The slot for key, or for index when key is null, or null if there is none.

Link copied to clipboard
open override fun size(): Int

How many slots there are.

Link copied to clipboard

Opens a compound operation over this map.