Skip to content

TreeRegistry

class TreeRegistry<K : Any, V, B : NodeBuilder<K, V, B>>

tree's own return value - every TreeNode it declared, addressable by TreeNode.id via get, reachable structurally from roots. Backed by Compose state throughout.

Properties

roots

val roots: List<TreeNode<K, V>>

Every top-level TreeScope.node call in the tree that built this registry.

Functions

get

operator fun get(id: K): TreeNode<K, V>?

The node registered under id, or null if none was.

saveToTag

fun <K : Any, V, B : NodeBuilder<K, V, B>> TreeRegistry<K, V, B>.saveToTag(keySerializer: KSerializer<K>, dataSerializer: KSerializer<V>): CompoundTag

Serializes every TreeNode this TreeRegistry holds into a CompoundTag - node id/data via keySerializer/dataSerializer, plus each node's own TreeNode.children/TreeNode.parents ids and the registry's own TreeRegistry.roots. See loadTree for the reverse.

inline fun <K : Any, V, B : NodeBuilder<K, V, B>> TreeRegistry<K, V, B>.saveToTag(): CompoundTag

Reified convenience over TreeRegistry.saveToTag resolving K/V's own serializers via SerializationManager.module.