InMemorySpecialHandlerRegistry.kt
package io.github.lishangbu.avalon.game.battle.engine.core.registry.memory
import io.github.lishangbu.avalon.game.battle.engine.core.handler.SpecialHandler
import io.github.lishangbu.avalon.game.battle.engine.core.registry.SpecialHandlerRegistry
import io.github.lishangbu.avalon.game.battle.engine.core.type.SpecialHandlerId
/**
* 基于内存 Map 的 SpecialHandlerRegistry 实现。
*
* @property entries handler 标识到实现的映射。
*/
class InMemorySpecialHandlerRegistry(
private val entries: Map<SpecialHandlerId, SpecialHandler>,
) : SpecialHandlerRegistry {
override fun get(id: SpecialHandlerId): SpecialHandler =
entries[id]
?: error("No special handler registered for '${id.value}'.")
override fun contains(id: SpecialHandlerId): Boolean = entries.containsKey(id)
}