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() override fun writeByte(data: Byte) { result.add(data) } fun toByteArray() = result.toByteArray() }