Uuids.kt
package com.hexagontk.helpers
import com.hexagontk.core.text.decodeBase64
import com.hexagontk.core.text.encodeToBase64
import java.nio.ByteBuffer
import java.util.*
/**
* .
*
* @receiver .
* @return .
*/
fun UUID.bytes(): ByteArray =
ByteBuffer.wrap(ByteArray(16)).let {
it.putLong(this.mostSignificantBits)
it.putLong(this.leastSignificantBits)
it.array()
}
/**
* .
*
* @receiver .
* @return .
*/
fun UUID.toBase64(): String =
bytes().encodeToBase64()
/**
* .
*
* @param text .
* @return .
*/
fun uuid(text: String): UUID =
if (text[8] == '-') UUID.fromString(text)
else uuid(text.decodeBase64())
/**
* .
*
* @param bytes .
* @return .
*/
fun uuid(bytes: ByteArray): UUID =
ByteBuffer.wrap(bytes).let { UUID(it.long, it.long) }