Coverage Summary for Class: NullablePrimitivesSerializer (com.ghost.serialization.integration.model)
| Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| NullablePrimitivesSerializer |
100%
(1/1)
|
85.7%
(6/7)
|
50%
(27/54)
|
71.3%
(72/101)
|
65.4%
(312/477)
|
@file:OptIn(InternalGhostApi::class)
package com.ghost.serialization.integration.model
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.JsonReaderOptions
import com.ghost.serialization.parser.beginObject
import com.ghost.serialization.parser.consumeNull
import com.ghost.serialization.parser.endObject
import com.ghost.serialization.parser.isNextNullValue
import com.ghost.serialization.parser.nextBoolean
import com.ghost.serialization.parser.nextDouble
import com.ghost.serialization.parser.nextInt
import com.ghost.serialization.parser.nextLong
import com.ghost.serialization.parser.nextString
import com.ghost.serialization.parser.selectNameAndConsume
import com.ghost.serialization.parser.skipValue
import com.ghost.serialization.writer.GhostJsonFlatWriter
import com.ghost.serialization.writer.GhostJsonWriter
import okio.ByteString
import okio.ByteString.Companion.encodeUtf8
/**
* High-performance serializer for [NullablePrimitives].
* Generated by GhostSerialization. Do not modify manually.
*/
public object NullablePrimitivesSerializer : GhostSerializer<NullablePrimitives> {
override val typeName: String = "NullablePrimitives"
private val OPTIONS: JsonReaderOptions =
JsonReaderOptions.of(0, 31, 128, false, "i", "l", "b", "d", "s")
private val H_B: ByteString = "\"b\":".encodeUtf8()
private val H_D: ByteString = "\"d\":".encodeUtf8()
private val H_I: ByteString = "\"i\":".encodeUtf8()
private val H_L: ByteString = "\"l\":".encodeUtf8()
private val H_S: ByteString = "\"s\":".encodeUtf8()
private const val MASK_I: Long = 1L
private const val MASK_L: Long = 2L
private const val MASK_B: Long = 4L
private const val MASK_D: Long = 8L
private const val MASK_S: Long = 16L
/**
* Robust deserialization for [NullablePrimitives].
*/
override fun deserialize(reader: GhostJsonReader): NullablePrimitives {
var iValue: Int? = null
var lValue: Long? = null
var bValue: Boolean? = null
var dValue: Double? = null
var sValue: String? = null
var mask0 = 0L
reader.beginObject()
while (true) {
val index = reader.selectNameAndConsume(OPTIONS)
when (index) {
0 -> {
iValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextInt()
mask0 = mask0 or MASK_I
}
1 -> {
lValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextLong()
mask0 = mask0 or MASK_L
}
2 -> {
bValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextBoolean()
mask0 = mask0 or MASK_B
}
3 -> {
dValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextDouble()
mask0 = mask0 or MASK_D
}
4 -> {
sValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_S
}
-1 -> break
-2 -> {
reader.skipValue()
}
}
}
reader.endObject()
return NullablePrimitives(
i = iValue,
l = lValue,
b = bValue,
d = dValue,
s = sValue,
)
}
/**
* Robust deserialization for [NullablePrimitives].
*/
override fun deserialize(reader: GhostJsonFlatReader): NullablePrimitives {
var iValue: Int? = null
var lValue: Long? = null
var bValue: Boolean? = null
var dValue: Double? = null
var sValue: String? = null
var mask0 = 0L
reader.beginObject()
while (true) {
val index = reader.selectNameAndConsume(OPTIONS)
when (index) {
0 -> {
iValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextInt()
mask0 = mask0 or MASK_I
}
1 -> {
lValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextLong()
mask0 = mask0 or MASK_L
}
2 -> {
bValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextBoolean()
mask0 = mask0 or MASK_B
}
3 -> {
dValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextDouble()
mask0 = mask0 or MASK_D
}
4 -> {
sValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
mask0 = mask0 or MASK_S
}
-1 -> break
-2 -> {
reader.skipValue()
}
}
}
reader.endObject()
return NullablePrimitives(
i = iValue,
l = lValue,
b = bValue,
d = dValue,
s = sValue,
)
}
override fun serialize(writer: GhostJsonWriter, `value`: NullablePrimitives) {
writer.beginObject()
if (value.i != null) {
writer.writeField(H_I, value.i)
} else {
writer.writeNameRaw(H_I).nullValue()
}
if (value.l != null) {
writer.writeField(H_L, value.l)
} else {
writer.writeNameRaw(H_L).nullValue()
}
if (value.b != null) {
writer.writeField(H_B, value.b)
} else {
writer.writeNameRaw(H_B).nullValue()
}
if (value.d != null) {
writer.writeField(H_D, value.d)
} else {
writer.writeNameRaw(H_D).nullValue()
}
if (value.s != null) {
writer.writeField(H_S, value.s)
} else {
writer.writeNameRaw(H_S).nullValue()
}
writer.endObject()
}
override fun serialize(writer: GhostJsonFlatWriter, `value`: NullablePrimitives) {
writer.beginObject()
if (value.i != null) {
writer.writeField(H_I, value.i)
} else {
writer.writeNameRaw(H_I).nullValue()
}
if (value.l != null) {
writer.writeField(H_L, value.l)
} else {
writer.writeNameRaw(H_L).nullValue()
}
if (value.b != null) {
writer.writeField(H_B, value.b)
} else {
writer.writeNameRaw(H_B).nullValue()
}
if (value.d != null) {
writer.writeField(H_D, value.d)
} else {
writer.writeNameRaw(H_D).nullValue()
}
if (value.s != null) {
writer.writeField(H_S, value.s)
} else {
writer.writeNameRaw(H_S).nullValue()
}
writer.endObject()
}
override fun warmUp() {
try {
val reader1 = GhostJsonReader("{}".encodeToByteArray())
deserialize(reader1)
} catch (_: Exception) {
}
try {
val reader2 = GhostJsonFlatReader("{}".encodeToByteArray())
deserialize(reader2)
} catch (_: Exception) {
}
}
}