diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/io/ProtoBuf.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/io/ProtoBuf.kt index 678540fb2..2a1c9e34c 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/io/ProtoBuf.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/io/ProtoBuf.kt @@ -1,7 +1,32 @@ package net.mamoe.mirai.qqandroid.io +import kotlinx.io.core.Input +import kotlinx.io.core.readBytes +import kotlinx.serialization.DeserializationStrategy +import kotlinx.serialization.SerializationStrategy + /** * 仅有标示作用 */ -interface ProtoBuf { +interface ProtoBuf + +/** + * dump + */ +fun T.toByteArray(serializer: SerializationStrategy): ByteArray { + return kotlinx.serialization.protobuf.ProtoBuf.dump(serializer, this) +} + +/** + * load + */ +fun ByteArray.loadAs(serializer: DeserializationStrategy): T { + return kotlinx.serialization.protobuf.ProtoBuf.load(serializer, this) +} + +/** + * load + */ +fun Input.readRemainingAsProtoBuf(serializer: DeserializationStrategy): T { + return kotlinx.serialization.protobuf.ProtoBuf.load(serializer, this.readBytes()) } \ No newline at end of file