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()
|
if (size % 4 != 0) throw Exception()
|
||||||
|
|
||||||
return toList()
|
return toList()
|
||||||
.chunked(4)
|
.chunked(4) { it.toByteArray() }
|
||||||
.map { it.toByteArray().toInt(order) }
|
.map { it.toInt(order) }
|
||||||
.toIntArray()
|
.toIntArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,8 +98,8 @@ fun ByteArray.toLongArray(
|
|||||||
if (size % 8 != 0) throw Exception()
|
if (size % 8 != 0) throw Exception()
|
||||||
|
|
||||||
return toList()
|
return toList()
|
||||||
.chunked(8)
|
.chunked(8) { it.toByteArray() }
|
||||||
.map { it.toByteArray().toLong(order) }
|
.map { it.toLong(order) }
|
||||||
.toLongArray()
|
.toLongArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,8 +120,8 @@ fun ByteArray.toUIntArray(
|
|||||||
if (size % 4 != 0) throw Exception()
|
if (size % 4 != 0) throw Exception()
|
||||||
|
|
||||||
return toList()
|
return toList()
|
||||||
.chunked(4)
|
.chunked(4) { it.toByteArray() }
|
||||||
.map { it.toByteArray().toUInt(order) }
|
.map { it.toUInt(order) }
|
||||||
.toUIntArray()
|
.toUIntArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,7 +142,7 @@ fun ByteArray.toULongArray(
|
|||||||
if (size % 8 != 0) throw Exception()
|
if (size % 8 != 0) throw Exception()
|
||||||
|
|
||||||
return toList()
|
return toList()
|
||||||
.chunked(8)
|
.chunked(8) { it.toByteArray() }
|
||||||
.map { it.toByteArray().toULong(order) }
|
.map { it.toULong(order) }
|
||||||
.toULongArray()
|
.toULongArray()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,16 @@ fun Int.toByteArray(
|
|||||||
return order.normalize(bytes)
|
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(
|
fun Int.toUByteArray(
|
||||||
order: ByteOrder = BIG_ENDIAN,
|
order: ByteOrder = BIG_ENDIAN,
|
||||||
): UByteArray {
|
): UByteArray {
|
||||||
@@ -21,3 +31,13 @@ fun Int.toUByteArray(
|
|||||||
}
|
}
|
||||||
return order.normalize(bytes)
|
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)
|
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(
|
fun Long.toUByteArray(
|
||||||
order: ByteOrder = BIG_ENDIAN,
|
order: ByteOrder = BIG_ENDIAN,
|
||||||
): UByteArray {
|
): UByteArray {
|
||||||
@@ -21,3 +31,13 @@ fun Long.toUByteArray(
|
|||||||
}
|
}
|
||||||
return order.normalize(bytes)
|
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()
|
if (size % 4 != 0) throw Exception()
|
||||||
|
|
||||||
return toList()
|
return toList()
|
||||||
.chunked(4)
|
.chunked(4) { it.toUByteArray() }
|
||||||
.map { it.toUByteArray().toInt(order) }
|
.map { it.toInt(order) }
|
||||||
.toIntArray()
|
.toIntArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,8 +95,8 @@ fun UByteArray.toLongArray(
|
|||||||
if (size % 8 != 0) throw Exception()
|
if (size % 8 != 0) throw Exception()
|
||||||
|
|
||||||
return toList()
|
return toList()
|
||||||
.chunked(8)
|
.chunked(8) { it.toUByteArray() }
|
||||||
.map { it.toUByteArray().toLong(order) }
|
.map { it.toLong(order) }
|
||||||
.toLongArray()
|
.toLongArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -117,8 +117,8 @@ fun UByteArray.toUIntArray(
|
|||||||
if (size % 4 != 0) throw Exception()
|
if (size % 4 != 0) throw Exception()
|
||||||
|
|
||||||
return toList()
|
return toList()
|
||||||
.chunked(4)
|
.chunked(4) { it.toUByteArray() }
|
||||||
.map { it.toUByteArray().toUInt(order) }
|
.map { it.toUInt(order) }
|
||||||
.toUIntArray()
|
.toUIntArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ fun UByteArray.toULongArray(
|
|||||||
if (size % 8 != 0) throw Exception()
|
if (size % 8 != 0) throw Exception()
|
||||||
|
|
||||||
return toList()
|
return toList()
|
||||||
.chunked(8)
|
.chunked(8) { it.toUByteArray() }
|
||||||
.map { it.toUByteArray().toULong(order) }
|
.map { it.toULong(order) }
|
||||||
.toULongArray()
|
.toULongArray()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,16 @@ fun UInt.toByteArray(
|
|||||||
return order.normalize(bytes)
|
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(
|
fun UInt.toUByteArray(
|
||||||
order: ByteOrder = BIG_ENDIAN,
|
order: ByteOrder = BIG_ENDIAN,
|
||||||
): UByteArray {
|
): UByteArray {
|
||||||
@@ -21,3 +31,13 @@ fun UInt.toUByteArray(
|
|||||||
}
|
}
|
||||||
return order.normalize(bytes)
|
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)
|
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(
|
fun ULong.toUByteArray(
|
||||||
order: ByteOrder = BIG_ENDIAN,
|
order: ByteOrder = BIG_ENDIAN,
|
||||||
): UByteArray {
|
): UByteArray {
|
||||||
@@ -21,3 +31,13 @@ fun ULong.toUByteArray(
|
|||||||
}
|
}
|
||||||
return order.normalize(bytes)
|
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