1 // This file was automatically generated from formats.md by Knit tool. Do not edit. 2 package example.exampleFormats05 3 4 import kotlinx.serialization.* 5 import kotlinx.serialization.protobuf.* 6 <lambda>null7fun ByteArray.toAsciiHexString() = joinToString("") { 8 if (it in 32..127) it.toInt().toChar().toString() else 9 "{${it.toUByte().toString(16).padStart(2, '0').uppercase()}}" 10 } 11 12 @OptIn(ExperimentalSerializationApi::class) 13 @Serializable 14 data class Project( 15 @ProtoNumber(1) 16 val name: String, 17 @ProtoNumber(3) 18 val language: String 19 ) 20 21 @OptIn(ExperimentalSerializationApi::class) mainnull22fun main() { 23 val data = Project("kotlinx.serialization", "Kotlin") 24 val bytes = ProtoBuf.encodeToByteArray(data) 25 println(bytes.toAsciiHexString()) 26 val obj = ProtoBuf.decodeFromByteArray<Project>(bytes) 27 println(obj) 28 } 29