25 lines
975 B
Kotlin
25 lines
975 B
Kotlin
package com.infendro.bytes.int
|
|
|
|
import com.infendro.bytes.ByteOrder
|
|
import com.infendro.bytes.ByteOrder.BIG_ENDIAN
|
|
import com.infendro.bytes.ByteOrder.LITTLE_ENDIAN
|
|
|
|
fun Int.copyInto(destination: ByteArray, destinationOffset: Int = 0, order: ByteOrder = BIG_ENDIAN) {
|
|
require(destinationOffset in 0..(destination.size - 4))
|
|
|
|
when (order) {
|
|
BIG_ENDIAN -> {
|
|
destination[destinationOffset] = (this shr 24).toByte()
|
|
destination[destinationOffset + 1] = (this shr 16).toByte()
|
|
destination[destinationOffset + 2] = (this shr 8).toByte()
|
|
destination[destinationOffset + 3] = this.toByte()
|
|
}
|
|
LITTLE_ENDIAN -> {
|
|
destination[destinationOffset] = this.toByte()
|
|
destination[destinationOffset + 1] = (this shr 8).toByte()
|
|
destination[destinationOffset + 2] = (this shr 16).toByte()
|
|
destination[destinationOffset + 3] = (this shr 24).toByte()
|
|
}
|
|
}
|
|
}
|