28 lines
549 B
Kotlin
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()
|
|
}
|