From a9a801048d694e5b250f3a23089075e9b7bd976c Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Sun, 22 Dec 2024 15:32:18 +0100 Subject: feat: Option to not rendering slot binding lines --- src/main/kotlin/gui/config/ManagedConfig.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/main/kotlin/gui/config') diff --git a/src/main/kotlin/gui/config/ManagedConfig.kt b/src/main/kotlin/gui/config/ManagedConfig.kt index 47a9c92..ea55f67 100644 --- a/src/main/kotlin/gui/config/ManagedConfig.kt +++ b/src/main/kotlin/gui/config/ManagedConfig.kt @@ -15,6 +15,7 @@ import org.lwjgl.glfw.GLFW import kotlinx.serialization.encodeToString import kotlinx.serialization.json.JsonElement import kotlinx.serialization.json.JsonObject +import kotlin.enums.enumEntries import kotlin.io.path.createDirectories import kotlin.io.path.readText import kotlin.io.path.writeText @@ -123,6 +124,17 @@ abstract class ManagedConfig( return option(propertyName, default, ChoiceHandler(universe)) } + protected inline fun choice( + propertyName: String, + noinline default: () -> E + ): ManagedOption where E : Enum, E : StringIdentifiable { + return choice(propertyName, enumEntries(), default) + } + + private fun createStringIdentifiable(x: () -> Array): Codec where E : Enum, E : StringIdentifiable { + return StringIdentifiable.createCodec { x() } + } + // TODO: wait on https://youtrack.jetbrains.com/issue/KT-73434 // protected inline fun choice( // propertyName: String, -- cgit