Meshtastic-Android/app/src/main/java/com/geeksville/mesh/database/Converters.kt

34 lines
956 B
Kotlin
Raw Normal View History

2022-09-14 01:54:13 -03:00
package com.geeksville.mesh.database
import androidx.room.TypeConverter
import com.geeksville.mesh.DataPacket
import com.geeksville.mesh.MeshProtos.MeshPacket
import com.google.protobuf.TextFormat
import kotlinx.serialization.json.Json
class Converters {
@TypeConverter
fun dataFromString(value: String): DataPacket {
val json = Json { isLenient = true }
return json.decodeFromString(DataPacket.serializer(), value)
}
@TypeConverter
fun dataToString(value: DataPacket): String {
val json = Json { isLenient = true }
return json.encodeToString(DataPacket.serializer(), value)
}
@TypeConverter
fun protoFromString(value: String): MeshPacket {
val builder = MeshPacket.newBuilder()
TextFormat.getParser().merge(value, builder)
return builder.build()
}
@TypeConverter
fun protoToString(value: MeshPacket): String {
return value.toString()
}
}