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() } } }