Coverage Summary for Class: ProtoEmptySerializer (com.ghost.protobuf.wkt)
| Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| ProtoEmptySerializer |
100%
(1/1)
|
40%
(2/5)
|
25%
(1/4)
|
29.4%
(5/17)
|
30.2%
(13/43)
|
@file:OptIn(InternalGhostApi::class)
package com.ghost.protobuf.wkt
import com.ghost.serialization.InternalGhostApi
import com.ghost.serialization.contract.GhostSerializer
import com.ghost.serialization.parser.GhostJsonFlatReader
import com.ghost.serialization.parser.GhostJsonReader
import com.ghost.serialization.parser.beginObject
import com.ghost.serialization.parser.consumeKeySeparator
import com.ghost.serialization.parser.endObject
import com.ghost.serialization.parser.nextString
import com.ghost.serialization.parser.skipValue
import com.ghost.serialization.writer.GhostJsonFlatWriter
import com.ghost.serialization.writer.GhostJsonWriter
import com.ghost.serialization.parser.GhostJsonConstants as C
/**
* A generic empty message that you can re-use to avoid defining duplicated
* empty messages in your APIs.
*/
object ProtoEmpty
/**
* Serializer for [ProtoEmpty].
*/
object ProtoEmptySerializer : GhostSerializer<ProtoEmpty> {
override val typeName: String get() = C.WKT_EMPTY_TYPE
override fun serialize(writer: GhostJsonWriter, value: ProtoEmpty) {
writer.beginObject().endObject()
}
override fun serialize(writer: GhostJsonFlatWriter, value: ProtoEmpty) {
writer.beginObject().endObject()
}
override fun deserialize(reader: GhostJsonReader): ProtoEmpty {
reader.beginObject()
while (reader.peekNextToken() != C.CLOSE_OBJ_INT) {
reader.nextString()
reader.consumeKeySeparator()
reader.skipValue()
}
reader.endObject()
return ProtoEmpty
}
override fun deserialize(reader: GhostJsonFlatReader): ProtoEmpty {
reader.beginObject()
while (reader.peekNextToken() != C.CLOSE_OBJ_INT) {
reader.nextString()
reader.consumeKeySeparator()
reader.skipValue()
}
reader.endObject()
return ProtoEmpty
}
}