Coverage Summary for Class: ExtremeMetadataSerializer (com.ghost.serialization.integration.model)

Class Class, % Method, % Branch, % Line, % Instruction, %
ExtremeMetadataSerializer 100% (1/1) 88.9% (8/9) 30.4% (17/56) 52.7% (78/148) 50.8% (340/669)


 @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.beginArray
 import com.ghost.serialization.parser.beginObject
 import com.ghost.serialization.parser.consumeNull
 import com.ghost.serialization.parser.endArray
 import com.ghost.serialization.parser.endObject
 import com.ghost.serialization.parser.isNextNullValue
 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.readList
 import com.ghost.serialization.parser.selectNameAndConsume
 import com.ghost.serialization.parser.skipValue
 import com.ghost.serialization.serializers.IntArraySerializer
 import com.ghost.serialization.writer.GhostJsonFlatWriter
 import com.ghost.serialization.writer.GhostJsonWriter
 import kotlin.IntArray
 import kotlin.collections.List
 import okio.ByteString
 import okio.ByteString.Companion.encodeUtf8
 
 /**
  * High-performance serializer for [ExtremeMetadata].
  * Generated by GhostSerialization. Do not modify manually.
  */
 public object ExtremeMetadataSerializer : GhostSerializer<ExtremeMetadata> {
   override val typeName: String = "ExtremeMetadata"
 
   private val OPTIONS: JsonReaderOptions =
       JsonReaderOptions.of(0, 31, 128, false, "lastLogin", "role", "tags", "precisionScore", "accessHistory", "debugInfo")
 
   private val H_ACCESSHISTORY: ByteString = "\"accessHistory\":".encodeUtf8()
 
   private val H_DEBUGINFO: ByteString = "\"debugInfo\":".encodeUtf8()
 
   private val H_LASTLOGIN: ByteString = "\"lastLogin\":".encodeUtf8()
 
   private val H_PRECISIONSCORE: ByteString = "\"precisionScore\":".encodeUtf8()
 
   private val H_ROLE: ByteString = "\"role\":".encodeUtf8()
 
   private val H_TAGS: ByteString = "\"tags\":".encodeUtf8()
 
   private const val MASK_LASTLOGIN: Long = 1L
 
   private const val MASK_ROLE: Long = 2L
 
   private const val MASK_TAGS: Long = 4L
 
   private const val MASK_PRECISIONSCORE: Long = 8L
 
   private const val MASK_ACCESSHISTORY: Long = 16L
 
   private const val MASK_DEBUGINFO: Long = 32L
 
   private const val MASK_REQUIRED_0: Long = 31L
 
   private const val MASK_OPTS_DEBUGINFO: Long = 32L
 
   private fun validateRequiredFields(mask0: Long, reader: GhostJsonReader) {
     if ((mask0 and MASK_REQUIRED_0) != MASK_REQUIRED_0) {
       if ((mask0 and MASK_LASTLOGIN) == 0L) {
         reader.throwError("Required field 'lastLogin' missing in JSON")
       } else if ((mask0 and MASK_ROLE) == 0L) {
         reader.throwError("Required field 'role' missing in JSON")
       } else if ((mask0 and MASK_TAGS) == 0L) {
         reader.throwError("Required field 'tags' missing in JSON")
       } else if ((mask0 and MASK_PRECISIONSCORE) == 0L) {
         reader.throwError("Required field 'precisionScore' missing in JSON")
       } else if ((mask0 and MASK_ACCESSHISTORY) == 0L) {
         reader.throwError("Required field 'accessHistory' missing in JSON")
       }
     }
   }
 
   /**
    * Robust deserialization for [ExtremeMetadata].
    */
   override fun deserialize(reader: GhostJsonReader): ExtremeMetadata {
     var lastLoginValue: Long = 0L
     var roleValue: UserRole? = null
     var tagsValue: List<String>? = null
     var precisionScoreValue: Double = 0.0
     var accessHistoryValue: IntArray? = null
     var debugInfoValue: String? = null
     var mask0 = 0L
     reader.beginObject()
     while (true) {
       val index = reader.selectNameAndConsume(OPTIONS)
       when (index) {
         0 -> {
           lastLoginValue = reader.nextLong()
           mask0 = mask0 or MASK_LASTLOGIN
         }
         1 -> {
           roleValue = UserRoleSerializer.deserialize(reader)
           mask0 = mask0 or MASK_ROLE
         }
         2 -> {
           tagsValue = reader.readList { reader.nextString() }
           mask0 = mask0 or MASK_TAGS
         }
         3 -> {
           precisionScoreValue = reader.nextDouble()
           mask0 = mask0 or MASK_PRECISIONSCORE
         }
         4 -> {
           accessHistoryValue = IntArraySerializer.deserialize(reader)
           mask0 = mask0 or MASK_ACCESSHISTORY
         }
         5 -> {
           debugInfoValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
           mask0 = mask0 or MASK_DEBUGINFO
         }
         -1 -> break
         -2 -> {
           reader.skipValue()
         }
       }
     }
     reader.endObject()
     validateRequiredFields(mask0, reader)
     if ((mask0 and MASK_OPTS_DEBUGINFO) == MASK_OPTS_DEBUGINFO) {
       return ExtremeMetadata(
         lastLogin = lastLoginValue,
         role = roleValue!!,
         tags = tagsValue!!,
         precisionScore = precisionScoreValue,
         accessHistory = accessHistoryValue!!,
         debugInfo = debugInfoValue,
       )
     }
     return ExtremeMetadata(
       lastLogin = lastLoginValue,
       role = roleValue!!,
       tags = tagsValue!!,
       precisionScore = precisionScoreValue,
       accessHistory = accessHistoryValue!!,
     )
   }
 
   private fun validateRequiredFields(mask0: Long, reader: GhostJsonFlatReader) {
     if ((mask0 and MASK_REQUIRED_0) != MASK_REQUIRED_0) {
       if ((mask0 and MASK_LASTLOGIN) == 0L) {
         reader.throwError("Required field 'lastLogin' missing in JSON")
       } else if ((mask0 and MASK_ROLE) == 0L) {
         reader.throwError("Required field 'role' missing in JSON")
       } else if ((mask0 and MASK_TAGS) == 0L) {
         reader.throwError("Required field 'tags' missing in JSON")
       } else if ((mask0 and MASK_PRECISIONSCORE) == 0L) {
         reader.throwError("Required field 'precisionScore' missing in JSON")
       } else if ((mask0 and MASK_ACCESSHISTORY) == 0L) {
         reader.throwError("Required field 'accessHistory' missing in JSON")
       }
     }
   }
 
   /**
    * Robust deserialization for [ExtremeMetadata].
    */
   override fun deserialize(reader: GhostJsonFlatReader): ExtremeMetadata {
     var lastLoginValue: Long = 0L
     var roleValue: UserRole? = null
     var tagsValue: List<String>? = null
     var precisionScoreValue: Double = 0.0
     var accessHistoryValue: IntArray? = null
     var debugInfoValue: String? = null
     var mask0 = 0L
     reader.beginObject()
     while (true) {
       val index = reader.selectNameAndConsume(OPTIONS)
       when (index) {
         0 -> {
           lastLoginValue = reader.nextLong()
           mask0 = mask0 or MASK_LASTLOGIN
         }
         1 -> {
           roleValue = UserRoleSerializer.deserialize(reader)
           mask0 = mask0 or MASK_ROLE
         }
         2 -> {
           tagsValue = reader.readList { reader.nextString() }
           mask0 = mask0 or MASK_TAGS
         }
         3 -> {
           precisionScoreValue = reader.nextDouble()
           mask0 = mask0 or MASK_PRECISIONSCORE
         }
         4 -> {
           accessHistoryValue = IntArraySerializer.deserialize(reader)
           mask0 = mask0 or MASK_ACCESSHISTORY
         }
         5 -> {
           debugInfoValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
           mask0 = mask0 or MASK_DEBUGINFO
         }
         -1 -> break
         -2 -> {
           reader.skipValue()
         }
       }
     }
     reader.endObject()
     validateRequiredFields(mask0, reader)
     if ((mask0 and MASK_OPTS_DEBUGINFO) == MASK_OPTS_DEBUGINFO) {
       return ExtremeMetadata(
         lastLogin = lastLoginValue,
         role = roleValue!!,
         tags = tagsValue!!,
         precisionScore = precisionScoreValue,
         accessHistory = accessHistoryValue!!,
         debugInfo = debugInfoValue,
       )
     }
     return ExtremeMetadata(
       lastLogin = lastLoginValue,
       role = roleValue!!,
       tags = tagsValue!!,
       precisionScore = precisionScoreValue,
       accessHistory = accessHistoryValue!!,
     )
   }
 
   override fun serialize(writer: GhostJsonWriter, `value`: ExtremeMetadata) {
     writer.beginObject()
     writer.writeField(H_LASTLOGIN, value.lastLogin)
     writer.writeNameRaw(H_ROLE)
     UserRoleSerializer.serialize(writer, value.role)
     writer.writeNameRaw(H_TAGS)
     writer.beginArray()
     val size0 = value.tags.size
     for (i0 in 0 until size0) {
       val item0 = value.tags[i0]
       writer.value(item0)
     }
     writer.endArray()
     writer.writeField(H_PRECISIONSCORE, value.precisionScore)
     writer.writeNameRaw(H_ACCESSHISTORY)
     IntArraySerializer.serialize(writer, value.accessHistory)
     if (value.debugInfo != null) {
       writer.writeField(H_DEBUGINFO, value.debugInfo)
     }
     writer.endObject()
   }
 
   override fun serialize(writer: GhostJsonFlatWriter, `value`: ExtremeMetadata) {
     writer.beginObject()
     writer.writeField(H_LASTLOGIN, value.lastLogin)
     writer.writeNameRaw(H_ROLE)
     UserRoleSerializer.serialize(writer, value.role)
     writer.writeNameRaw(H_TAGS)
     writer.beginArray()
     val size0 = value.tags.size
     for (i0 in 0 until size0) {
       val item0 = value.tags[i0]
       writer.value(item0)
     }
     writer.endArray()
     writer.writeField(H_PRECISIONSCORE, value.precisionScore)
     writer.writeNameRaw(H_ACCESSHISTORY)
     IntArraySerializer.serialize(writer, value.accessHistory)
     if (value.debugInfo != null) {
       writer.writeField(H_DEBUGINFO, value.debugInfo)
     }
     writer.endObject()
   }
 
   override fun warmUp() {
     try {
       val reader1 = GhostJsonReader("{\"lastLogin\":0,\"role\":{},\"tags\":[],\"precisionScore\":0.0,\"accessHistory\":null}".encodeToByteArray())
       deserialize(reader1)
     } catch (_: Exception) {
     }
     try {
       val reader2 = GhostJsonFlatReader("{\"lastLogin\":0,\"role\":{},\"tags\":[],\"precisionScore\":0.0,\"accessHistory\":null}".encodeToByteArray())
       deserialize(reader2)
     } catch (_: Exception) {
     }
   }
 }