Implement asList, slice & sliceArray extension functions for UArrays

This commit is contained in:
Abduqodiri Qurbonzoda
2019-01-24 16:55:57 +03:00
committed by Ilya Gorbunov
parent 114736c09b
commit fc85781bfc
16 changed files with 646 additions and 39 deletions
@@ -0,0 +1,114 @@
/*
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package kotlin.collections
//
// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt
// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib
//
import kotlin.js.*
/**
* Returns a [List] that wraps the original array.
*/
@SinceKotlin("1.3")
@ExperimentalUnsignedTypes
public actual fun UIntArray.asList(): List<UInt> {
return object : AbstractList<UInt>(), RandomAccess {
override val size: Int get() = this@asList.size
override fun isEmpty(): Boolean = this@asList.isEmpty()
override fun contains(element: UInt): Boolean = this@asList.contains(element)
override fun get(index: Int): UInt {
AbstractList.checkElementIndex(index, size)
return this@asList[index]
}
override fun indexOf(element: UInt): Int {
if ((element as Any?) !is UInt) return -1
return this@asList.indexOf(element)
}
override fun lastIndexOf(element: UInt): Int {
if ((element as Any?) !is UInt) return -1
return this@asList.lastIndexOf(element)
}
}
}
/**
* Returns a [List] that wraps the original array.
*/
@SinceKotlin("1.3")
@ExperimentalUnsignedTypes
public actual fun ULongArray.asList(): List<ULong> {
return object : AbstractList<ULong>(), RandomAccess {
override val size: Int get() = this@asList.size
override fun isEmpty(): Boolean = this@asList.isEmpty()
override fun contains(element: ULong): Boolean = this@asList.contains(element)
override fun get(index: Int): ULong {
AbstractList.checkElementIndex(index, size)
return this@asList[index]
}
override fun indexOf(element: ULong): Int {
if ((element as Any?) !is ULong) return -1
return this@asList.indexOf(element)
}
override fun lastIndexOf(element: ULong): Int {
if ((element as Any?) !is ULong) return -1
return this@asList.lastIndexOf(element)
}
}
}
/**
* Returns a [List] that wraps the original array.
*/
@SinceKotlin("1.3")
@ExperimentalUnsignedTypes
public actual fun UByteArray.asList(): List<UByte> {
return object : AbstractList<UByte>(), RandomAccess {
override val size: Int get() = this@asList.size
override fun isEmpty(): Boolean = this@asList.isEmpty()
override fun contains(element: UByte): Boolean = this@asList.contains(element)
override fun get(index: Int): UByte {
AbstractList.checkElementIndex(index, size)
return this@asList[index]
}
override fun indexOf(element: UByte): Int {
if ((element as Any?) !is UByte) return -1
return this@asList.indexOf(element)
}
override fun lastIndexOf(element: UByte): Int {
if ((element as Any?) !is UByte) return -1
return this@asList.lastIndexOf(element)
}
}
}
/**
* Returns a [List] that wraps the original array.
*/
@SinceKotlin("1.3")
@ExperimentalUnsignedTypes
public actual fun UShortArray.asList(): List<UShort> {
return object : AbstractList<UShort>(), RandomAccess {
override val size: Int get() = this@asList.size
override fun isEmpty(): Boolean = this@asList.isEmpty()
override fun contains(element: UShort): Boolean = this@asList.contains(element)
override fun get(index: Int): UShort {
AbstractList.checkElementIndex(index, size)
return this@asList[index]
}
override fun indexOf(element: UShort): Int {
if ((element as Any?) !is UShort) return -1
return this@asList.indexOf(element)
}
override fun lastIndexOf(element: UShort): Int {
if ((element as Any?) !is UShort) return -1
return this@asList.lastIndexOf(element)
}
}
}