diff --git a/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/constraints/CollectionConstraintUtils.kt b/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/constraints/CollectionConstraintUtils.kt new file mode 100644 index 00000000..8231b97e --- /dev/null +++ b/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/constraints/CollectionConstraintUtils.kt @@ -0,0 +1,13 @@ +package dev.slne.surf.api.core.config.constraints + +import dev.slne.surf.api.core.config.type.StringOrDefault + +internal tailrec fun Any?.configSizeOrNull(): Int? = when (this) { + null -> null + is Collection<*> -> size + is Map<*, *> -> size + is Array<*> -> size + is CharSequence -> length + is StringOrDefault -> value?.configSizeOrNull() + else -> null +} \ No newline at end of file