28 lines
549 B
Kotlin

package net.sergeych.bintools
abstract class DataSink {
abstract fun writeByte(data: Byte)
fun writeByte(data: Int) = writeByte(data.toByte())
open fun writeUByte(data: UByte) {
writeByte(data.toByte())
}
@Suppress("unused")
open fun writeBytes(data: ByteArray) {
for(d in data) writeByte(d)
}
}
class ArrayDataSink : DataSink() {
private val result = mutableListOf<Byte>()
override fun writeByte(data: Byte) {
result.add(data)
}
fun toByteArray() = result.toByteArray()
}