diff --git a/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/Specification.kt b/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/Specification.kt index 6d3afbea..7f3dd2a6 100644 --- a/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/Specification.kt +++ b/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/Specification.kt @@ -7,7 +7,7 @@ import space.kscience.dataforge.names.asName import kotlin.properties.ReadWriteProperty import kotlin.reflect.KProperty -public interface ReadOnlySpecification: Described { +public interface ReadOnlySpecification : Described { /** * Read generic read-only meta with this [Specification] producing instance of desired type. @@ -128,3 +128,10 @@ public fun MutableMeta.listOfSpec( setIndexed(name, value.map { it.toMeta() }) } } + + +@DFExperimental +public fun Scheme.listOfSpec( + spec: Specification, + key: Name? = null, +): ReadWriteProperty> = meta.listOfSpec(spec, key) diff --git a/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/names/Name.kt b/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/names/Name.kt index 1c9a9cf3..5e4b98a8 100644 --- a/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/names/Name.kt +++ b/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/names/Name.kt @@ -16,12 +16,10 @@ public class Name(public val tokens: List) { override fun toString(): String = tokens.joinToString(separator = NAME_SEPARATOR) { it.toString() } - override fun equals(other: Any?): Boolean { - return when (other) { - is Name -> this.tokens == other.tokens - is NameToken -> this.length == 1 && this.tokens.first() == other - else -> false - } + override fun equals(other: Any?): Boolean = when (other) { + is Name -> this.tokens == other.tokens + is NameToken -> this.length == 1 && this.tokens.first() == other + else -> false } private val cachedHashCode = if (tokens.size == 1) {