Commit 7dc23b5f authored by Him188's avatar Him188

Add BytePacketBuilder.writeProtoBuf

parent 37788bcb
package net.mamoe.mirai.qqandroid.io package net.mamoe.mirai.qqandroid.io
import kotlinx.io.core.BytePacketBuilder
import kotlinx.io.core.Input import kotlinx.io.core.Input
import kotlinx.io.core.readBytes import kotlinx.io.core.readBytes
import kotlinx.io.core.writeFully
import kotlinx.serialization.DeserializationStrategy import kotlinx.serialization.DeserializationStrategy
import kotlinx.serialization.SerializationStrategy import kotlinx.serialization.SerializationStrategy
...@@ -10,6 +12,10 @@ import kotlinx.serialization.SerializationStrategy ...@@ -10,6 +12,10 @@ import kotlinx.serialization.SerializationStrategy
*/ */
interface ProtoBuf interface ProtoBuf
fun <T : ProtoBuf> BytePacketBuilder.writeProtoBuf(serializer: SerializationStrategy<T>, v: T) {
this.writeFully(v.toByteArray(serializer))
}
/** /**
* dump * dump
*/ */
...@@ -20,8 +26,8 @@ fun <T : ProtoBuf> T.toByteArray(serializer: SerializationStrategy<T>): ByteArra ...@@ -20,8 +26,8 @@ fun <T : ProtoBuf> T.toByteArray(serializer: SerializationStrategy<T>): ByteArra
/** /**
* load * load
*/ */
fun <T : ProtoBuf> ByteArray.loadAs(serializer: DeserializationStrategy<T>): T { fun <T : ProtoBuf> ByteArray.loadAs(deserializer: DeserializationStrategy<T>): T {
return kotlinx.serialization.protobuf.ProtoBuf.load(serializer, this) return kotlinx.serialization.protobuf.ProtoBuf.load(deserializer, this)
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment