[K/N] Internalize valueOfForEnum and valuesForEnum functions

As a part of efforts to stabilize Native stdlib.
This commit is contained in:
Abduqodiri Qurbonzoda
2023-04-06 20:48:15 +03:00
parent 72f87ba55f
commit df642dd3fb
@@ -188,7 +188,8 @@ internal fun runUnhandledExceptionHook(throwable: Throwable) {
@ExportForCppRuntime @ExportForCppRuntime
internal fun TheEmptyString() = "" internal fun TheEmptyString() = ""
public fun <T: Enum<T>> valueOfForEnum(name: String, values: Array<T>) : T { @PublishedApi
internal fun <T: Enum<T>> valueOfForEnum(name: String, values: Array<T>) : T {
var left = 0 var left = 0
var right = values.size - 1 var right = values.size - 1
while (left <= right) { while (left <= right) {
@@ -203,7 +204,8 @@ public fun <T: Enum<T>> valueOfForEnum(name: String, values: Array<T>) : T {
throw Exception("Invalid enum value name: $name") throw Exception("Invalid enum value name: $name")
} }
public fun <T: Enum<T>> valuesForEnum(values: Array<T>): Array<T> { @PublishedApi
internal fun <T: Enum<T>> valuesForEnum(values: Array<T>): Array<T> {
val result = @Suppress("TYPE_PARAMETER_AS_REIFIED") Array<T?>(values.size) val result = @Suppress("TYPE_PARAMETER_AS_REIFIED") Array<T?>(values.size)
for (value in values) for (value in values)
result[value.ordinal] = value result[value.ordinal] = value