package gs.blob.v0 import java.util.Base64 opaque type Blob = Array[Byte] object Blob: private val Hex: String = "0123456789abcdef"; def apply(data: Array[Byte]): Blob = data given CanEqual[Blob, Blob] = CanEqual.derived extension (blob: Blob) def toByteArray(): Array[Byte] = blob def toBase64(): String = Base64.getEncoder().encodeToString(blob) // TODO: Hex library def toHex(): String = var index = 0 val ch: Array[Char] = new Array(blob.length * 2) blob.foreach { byte => ch(index) = Hex.charAt((byte & 0xf0) >> 4) ch(index + 1) = Hex.charAt(byte & 0x0f) index = index + 2 } new String(ch) end Blob