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) {
     }
   }
 }