diff --git a/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/descriptors/MetaDescriptorBuilder.kt b/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/descriptors/MetaDescriptorBuilder.kt index 7688f3cc..d123bb54 100644 --- a/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/descriptors/MetaDescriptorBuilder.kt +++ b/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/descriptors/MetaDescriptorBuilder.kt @@ -90,9 +90,8 @@ public class MetaDescriptorBuilder internal constructor() { ) } -public fun MetaDescriptorBuilder.item(name: String, block: MetaDescriptorBuilder.() -> Unit) { +public fun MetaDescriptorBuilder.item(name: String, block: MetaDescriptorBuilder.() -> Unit): MetaDescriptorBuilder = item(Name.parse(name), block) -} public fun MetaDescriptor(block: MetaDescriptorBuilder.() -> Unit): MetaDescriptor = MetaDescriptorBuilder().apply(block).build() diff --git a/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/descriptors/schemeDescriptor.kt b/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/descriptors/schemeDescriptor.kt index 060d3a80..03104104 100644 --- a/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/descriptors/schemeDescriptor.kt +++ b/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/descriptors/schemeDescriptor.kt @@ -9,34 +9,32 @@ import kotlin.reflect.typeOf public inline fun MetaDescriptorBuilder.value( property: KProperty1, noinline block: MetaDescriptorBuilder.() -> Unit = {}, -) { - when (typeOf()) { - typeOf(), typeOf(), typeOf(), typeOf(), typeOf(), typeOf() -> - value(property.name, ValueType.NUMBER) { - block() - } - typeOf(), typeOf(), typeOf(), typeOf(), typeOf(), typeOf() -> - value(property.name, ValueType.NUMBER) { - block() - } - typeOf() -> value(property.name, ValueType.BOOLEAN) { +): MetaDescriptorBuilder = when (typeOf()) { + typeOf(), typeOf(), typeOf(), typeOf(), typeOf(), typeOf() -> + value(property.name, ValueType.NUMBER) { block() } - typeOf>(), typeOf>(), typeOf>(), typeOf>(), typeOf>(), typeOf>(), - typeOf(), typeOf(), typeOf(), typeOf(), typeOf(), - -> value(property.name, ValueType.NUMBER) { - multiple = true + typeOf(), typeOf(), typeOf(), typeOf(), typeOf(), typeOf() -> + value(property.name, ValueType.NUMBER) { block() } - typeOf() -> value(property.name, ValueType.STRING) { - block() - } - typeOf>(), typeOf>() -> value(property.name, ValueType.STRING) { - multiple = true - block() - } - else -> item(property.name, block) + typeOf() -> value(property.name, ValueType.BOOLEAN) { + block() } + typeOf>(), typeOf>(), typeOf>(), typeOf>(), typeOf>(), typeOf>(), + typeOf(), typeOf(), typeOf(), typeOf(), typeOf(), + -> value(property.name, ValueType.NUMBER) { + multiple = true + block() + } + typeOf() -> value(property.name, ValueType.STRING) { + block() + } + typeOf>(), typeOf>() -> value(property.name, ValueType.STRING) { + multiple = true + block() + } + else -> item(property.name, block) } public inline fun MetaDescriptorBuilder.scheme(