implement typed array to byte array conversions
This commit is contained in:
@@ -76,8 +76,8 @@ fun ByteArray.toIntArray(
|
||||
if (size % 4 != 0) throw Exception()
|
||||
|
||||
return toList()
|
||||
.chunked(4)
|
||||
.map { it.toByteArray().toInt(order) }
|
||||
.chunked(4) { it.toByteArray() }
|
||||
.map { it.toInt(order) }
|
||||
.toIntArray()
|
||||
}
|
||||
|
||||
@@ -98,8 +98,8 @@ fun ByteArray.toLongArray(
|
||||
if (size % 8 != 0) throw Exception()
|
||||
|
||||
return toList()
|
||||
.chunked(8)
|
||||
.map { it.toByteArray().toLong(order) }
|
||||
.chunked(8) { it.toByteArray() }
|
||||
.map { it.toLong(order) }
|
||||
.toLongArray()
|
||||
}
|
||||
|
||||
@@ -120,8 +120,8 @@ fun ByteArray.toUIntArray(
|
||||
if (size % 4 != 0) throw Exception()
|
||||
|
||||
return toList()
|
||||
.chunked(4)
|
||||
.map { it.toByteArray().toUInt(order) }
|
||||
.chunked(4) { it.toByteArray() }
|
||||
.map { it.toUInt(order) }
|
||||
.toUIntArray()
|
||||
}
|
||||
|
||||
@@ -142,7 +142,7 @@ fun ByteArray.toULongArray(
|
||||
if (size % 8 != 0) throw Exception()
|
||||
|
||||
return toList()
|
||||
.chunked(8)
|
||||
.map { it.toByteArray().toULong(order) }
|
||||
.chunked(8) { it.toByteArray() }
|
||||
.map { it.toULong(order) }
|
||||
.toULongArray()
|
||||
}
|
||||
|
||||
@@ -12,6 +12,16 @@ fun Int.toByteArray(
|
||||
return order.normalize(bytes)
|
||||
}
|
||||
|
||||
fun IntArray.toByteArray(
|
||||
order: ByteOrder = BIG_ENDIAN,
|
||||
): ByteArray {
|
||||
return buildList {
|
||||
for (n in this@toByteArray) {
|
||||
addAll(n.toByteArray(order))
|
||||
}
|
||||
}.toByteArray()
|
||||
}
|
||||
|
||||
fun Int.toUByteArray(
|
||||
order: ByteOrder = BIG_ENDIAN,
|
||||
): UByteArray {
|
||||
@@ -21,3 +31,13 @@ fun Int.toUByteArray(
|
||||
}
|
||||
return order.normalize(bytes)
|
||||
}
|
||||
|
||||
fun IntArray.toUByteArray(
|
||||
order: ByteOrder = BIG_ENDIAN,
|
||||
): UByteArray {
|
||||
return buildList {
|
||||
for (n in this@toUByteArray) {
|
||||
addAll(n.toUByteArray(order))
|
||||
}
|
||||
}.toUByteArray()
|
||||
}
|
||||
|
||||
@@ -12,6 +12,16 @@ fun Long.toByteArray(
|
||||
return order.normalize(bytes)
|
||||
}
|
||||
|
||||
fun LongArray.toByteArray(
|
||||
order: ByteOrder = BIG_ENDIAN,
|
||||
): ByteArray {
|
||||
return buildList {
|
||||
for (n in this@toByteArray) {
|
||||
addAll(n.toByteArray(order))
|
||||
}
|
||||
}.toByteArray()
|
||||
}
|
||||
|
||||
fun Long.toUByteArray(
|
||||
order: ByteOrder = BIG_ENDIAN,
|
||||
): UByteArray {
|
||||
@@ -21,3 +31,13 @@ fun Long.toUByteArray(
|
||||
}
|
||||
return order.normalize(bytes)
|
||||
}
|
||||
|
||||
fun LongArray.toUByteArray(
|
||||
order: ByteOrder = BIG_ENDIAN,
|
||||
): UByteArray {
|
||||
return buildList {
|
||||
for (n in this@toUByteArray) {
|
||||
addAll(n.toUByteArray(order))
|
||||
}
|
||||
}.toUByteArray()
|
||||
}
|
||||
|
||||
@@ -73,8 +73,8 @@ fun UByteArray.toIntArray(
|
||||
if (size % 4 != 0) throw Exception()
|
||||
|
||||
return toList()
|
||||
.chunked(4)
|
||||
.map { it.toUByteArray().toInt(order) }
|
||||
.chunked(4) { it.toUByteArray() }
|
||||
.map { it.toInt(order) }
|
||||
.toIntArray()
|
||||
}
|
||||
|
||||
@@ -95,8 +95,8 @@ fun UByteArray.toLongArray(
|
||||
if (size % 8 != 0) throw Exception()
|
||||
|
||||
return toList()
|
||||
.chunked(8)
|
||||
.map { it.toUByteArray().toLong(order) }
|
||||
.chunked(8) { it.toUByteArray() }
|
||||
.map { it.toLong(order) }
|
||||
.toLongArray()
|
||||
}
|
||||
|
||||
@@ -117,8 +117,8 @@ fun UByteArray.toUIntArray(
|
||||
if (size % 4 != 0) throw Exception()
|
||||
|
||||
return toList()
|
||||
.chunked(4)
|
||||
.map { it.toUByteArray().toUInt(order) }
|
||||
.chunked(4) { it.toUByteArray() }
|
||||
.map { it.toUInt(order) }
|
||||
.toUIntArray()
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ fun UByteArray.toULongArray(
|
||||
if (size % 8 != 0) throw Exception()
|
||||
|
||||
return toList()
|
||||
.chunked(8)
|
||||
.map { it.toUByteArray().toULong(order) }
|
||||
.chunked(8) { it.toUByteArray() }
|
||||
.map { it.toULong(order) }
|
||||
.toULongArray()
|
||||
}
|
||||
|
||||
@@ -12,6 +12,16 @@ fun UInt.toByteArray(
|
||||
return order.normalize(bytes)
|
||||
}
|
||||
|
||||
fun UIntArray.toByteArray(
|
||||
order: ByteOrder = BIG_ENDIAN,
|
||||
): ByteArray {
|
||||
return buildList {
|
||||
for (n in this@toByteArray) {
|
||||
addAll(n.toByteArray(order))
|
||||
}
|
||||
}.toByteArray()
|
||||
}
|
||||
|
||||
fun UInt.toUByteArray(
|
||||
order: ByteOrder = BIG_ENDIAN,
|
||||
): UByteArray {
|
||||
@@ -21,3 +31,13 @@ fun UInt.toUByteArray(
|
||||
}
|
||||
return order.normalize(bytes)
|
||||
}
|
||||
|
||||
fun UIntArray.toUByteArray(
|
||||
order: ByteOrder = BIG_ENDIAN,
|
||||
): UByteArray {
|
||||
return buildList {
|
||||
for (n in this@toUByteArray) {
|
||||
addAll(n.toUByteArray(order))
|
||||
}
|
||||
}.toUByteArray()
|
||||
}
|
||||
|
||||
@@ -12,6 +12,16 @@ fun ULong.toByteArray(
|
||||
return order.normalize(bytes)
|
||||
}
|
||||
|
||||
fun ULongArray.toByteArray(
|
||||
order: ByteOrder = BIG_ENDIAN,
|
||||
): ByteArray {
|
||||
return buildList {
|
||||
for (n in this@toByteArray) {
|
||||
addAll(n.toByteArray(order))
|
||||
}
|
||||
}.toByteArray()
|
||||
}
|
||||
|
||||
fun ULong.toUByteArray(
|
||||
order: ByteOrder = BIG_ENDIAN,
|
||||
): UByteArray {
|
||||
@@ -21,3 +31,13 @@ fun ULong.toUByteArray(
|
||||
}
|
||||
return order.normalize(bytes)
|
||||
}
|
||||
|
||||
fun ULongArray.toUByteArray(
|
||||
order: ByteOrder = BIG_ENDIAN,
|
||||
): UByteArray {
|
||||
return buildList {
|
||||
for (n in this@toUByteArray) {
|
||||
addAll(n.toUByteArray(order))
|
||||
}
|
||||
}.toUByteArray()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user