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

Class Class, % Method, % Branch, % Line, % Instruction, %
ComplexObjectSerializer 100% (1/1) 80% (8/10) 34.8% (57/164) 60.4% (220/364) 53.3% (1031/1934)


 @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.nextBoolean
 import com.ghost.serialization.parser.nextDouble
 import com.ghost.serialization.parser.nextFloat
 import com.ghost.serialization.parser.nextInt
 import com.ghost.serialization.parser.nextKey
 import com.ghost.serialization.parser.nextLong
 import com.ghost.serialization.parser.nextString
 import com.ghost.serialization.parser.readList
 import com.ghost.serialization.parser.readMap
 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 kotlin.collections.List
 import kotlin.collections.Map
 import okio.ByteString
 import okio.ByteString.Companion.encodeUtf8
 
 /**
  * High-performance serializer for [ComplexObject].
  * Generated by GhostSerialization. Do not modify manually.
  */
 public object ComplexObjectSerializer : GhostSerializer<ComplexObject> {
   override val typeName: String = "ComplexObject"
 
   private val OPTIONS: JsonReaderOptions =
       JsonReaderOptions.of(0, 31, 128, false, "id", "userId", "name", "email", "score", "rating", "isActive", "biography", "nullableAge", "nullableName", "nullableScore", "defaultRole", "defaultPriority", "defaultCount", "priority", "tags", "scores", "metadata", "address", "tagObjects", "nestedTree")
 
   private val H_ADDRESS: ByteString = "\"address\":".encodeUtf8()
 
   private val H_BIOGRAPHY: ByteString = "\"biography\":".encodeUtf8()
 
   private val H_DEFAULTCOUNT: ByteString = "\"defaultCount\":".encodeUtf8()
 
   private val H_DEFAULTPRIORITY: ByteString = "\"defaultPriority\":".encodeUtf8()
 
   private val H_DEFAULTROLE: ByteString = "\"defaultRole\":".encodeUtf8()
 
   private val H_EMAIL: ByteString = "\"email\":".encodeUtf8()
 
   private val H_ID: ByteString = "\"id\":".encodeUtf8()
 
   private val H_ISACTIVE: ByteString = "\"isActive\":".encodeUtf8()
 
   private val H_METADATA: ByteString = "\"metadata\":".encodeUtf8()
 
   private val H_NAME: ByteString = "\"name\":".encodeUtf8()
 
   private val H_NESTEDTREE: ByteString = "\"nestedTree\":".encodeUtf8()
 
   private val H_NULLABLEAGE: ByteString = "\"nullableAge\":".encodeUtf8()
 
   private val H_NULLABLENAME: ByteString = "\"nullableName\":".encodeUtf8()
 
   private val H_NULLABLESCORE: ByteString = "\"nullableScore\":".encodeUtf8()
 
   private val H_PRIORITY: ByteString = "\"priority\":".encodeUtf8()
 
   private val H_RATING: ByteString = "\"rating\":".encodeUtf8()
 
   private val H_SCORE: ByteString = "\"score\":".encodeUtf8()
 
   private val H_SCORES: ByteString = "\"scores\":".encodeUtf8()
 
   private val H_TAGOBJECTS: ByteString = "\"tagObjects\":".encodeUtf8()
 
   private val H_TAGS: ByteString = "\"tags\":".encodeUtf8()
 
   private val H_USERID: ByteString = "\"userId\":".encodeUtf8()
 
   private const val MASK_ID: Long = 1L
 
   private const val MASK_USERID: Long = 2L
 
   private const val MASK_NAME: Long = 4L
 
   private const val MASK_EMAIL: Long = 8L
 
   private const val MASK_SCORE: Long = 16L
 
   private const val MASK_RATING: Long = 32L
 
   private const val MASK_ISACTIVE: Long = 64L
 
   private const val MASK_BIOGRAPHY: Long = 128L
 
   private const val MASK_NULLABLEAGE: Long = 256L
 
   private const val MASK_NULLABLENAME: Long = 512L
 
   private const val MASK_NULLABLESCORE: Long = 1024L
 
   private const val MASK_DEFAULTROLE: Long = 2048L
 
   private const val MASK_DEFAULTPRIORITY: Long = 4096L
 
   private const val MASK_DEFAULTCOUNT: Long = 8192L
 
   private const val MASK_PRIORITY: Long = 16384L
 
   private const val MASK_TAGS: Long = 32768L
 
   private const val MASK_SCORES: Long = 65536L
 
   private const val MASK_METADATA: Long = 131072L
 
   private const val MASK_ADDRESS: Long = 262144L
 
   private const val MASK_TAGOBJECTS: Long = 524288L
 
   private const val MASK_NESTEDTREE: Long = 1048576L
 
   private const val MASK_REQUIRED_0: Long = 2081023L
 
   private const val MASK_DEFAULTS_0: Long = 16128L
 
   private fun createInstance(
     mask0: Long,
     idValue: Int,
     userIdValue: Long,
     nameValue: String?,
     emailValue: String?,
     scoreValue: Double,
     ratingValue: Float,
     isActiveValue: Boolean,
     biographyValue: String?,
     nullableAgeValue: Int?,
     nullableNameValue: String?,
     nullableScoreValue: Double?,
     defaultRoleValue: String?,
     defaultPriorityValue: Priority?,
     defaultCountValue: Int,
     priorityValue: Priority?,
     tagsValue: List<String>?,
     scoresValue: List<Double>?,
     metadataValue: Map<String, String>?,
     addressValue: Address?,
     tagObjectsValue: List<Tag>?,
     nestedTreeValue: NestedContainer?,
   ): ComplexObject {
     val result = ComplexObject(
       id = idValue,
       userId = userIdValue,
       name = nameValue!!,
       email = emailValue!!,
       score = scoreValue,
       rating = ratingValue,
       isActive = isActiveValue,
       biography = biographyValue!!,
       priority = priorityValue!!,
       tags = tagsValue!!,
       scores = scoresValue!!,
       metadata = metadataValue!!,
       address = addressValue!!,
       tagObjects = tagObjectsValue!!,
       nestedTree = nestedTreeValue!!,
     )
     if ((mask0 and MASK_DEFAULTS_0) != 0L) {
       return result.copy(
         nullableAge = if ((mask0 and MASK_NULLABLEAGE) != 0L) nullableAgeValue else result.nullableAge,
         nullableName = if ((mask0 and MASK_NULLABLENAME) != 0L) nullableNameValue else result.nullableName,
         nullableScore = if ((mask0 and MASK_NULLABLESCORE) != 0L) nullableScoreValue else result.nullableScore,
         defaultRole = if ((mask0 and MASK_DEFAULTROLE) != 0L) defaultRoleValue!! else result.defaultRole,
         defaultPriority = if ((mask0 and MASK_DEFAULTPRIORITY) != 0L) defaultPriorityValue!! else result.defaultPriority,
         defaultCount = if ((mask0 and MASK_DEFAULTCOUNT) != 0L) defaultCountValue else result.defaultCount,
       )
     } else {
       return result
     }
   }
 
   private fun validateRequiredFields(mask0: Long, reader: GhostJsonReader) {
     if ((mask0 and MASK_REQUIRED_0) != MASK_REQUIRED_0) {
       if ((mask0 and MASK_ID) == 0L) {
         reader.throwError("Required field 'id' missing in JSON")
       } else if ((mask0 and MASK_USERID) == 0L) {
         reader.throwError("Required field 'userId' missing in JSON")
       } else if ((mask0 and MASK_NAME) == 0L) {
         reader.throwError("Required field 'name' missing in JSON")
       } else if ((mask0 and MASK_EMAIL) == 0L) {
         reader.throwError("Required field 'email' missing in JSON")
       } else if ((mask0 and MASK_SCORE) == 0L) {
         reader.throwError("Required field 'score' missing in JSON")
       } else if ((mask0 and MASK_RATING) == 0L) {
         reader.throwError("Required field 'rating' missing in JSON")
       } else if ((mask0 and MASK_ISACTIVE) == 0L) {
         reader.throwError("Required field 'isActive' missing in JSON")
       } else if ((mask0 and MASK_BIOGRAPHY) == 0L) {
         reader.throwError("Required field 'biography' missing in JSON")
       } else if ((mask0 and MASK_PRIORITY) == 0L) {
         reader.throwError("Required field 'priority' missing in JSON")
       } else if ((mask0 and MASK_TAGS) == 0L) {
         reader.throwError("Required field 'tags' missing in JSON")
       } else if ((mask0 and MASK_SCORES) == 0L) {
         reader.throwError("Required field 'scores' missing in JSON")
       } else if ((mask0 and MASK_METADATA) == 0L) {
         reader.throwError("Required field 'metadata' missing in JSON")
       } else if ((mask0 and MASK_ADDRESS) == 0L) {
         reader.throwError("Required field 'address' missing in JSON")
       } else if ((mask0 and MASK_TAGOBJECTS) == 0L) {
         reader.throwError("Required field 'tagObjects' missing in JSON")
       } else if ((mask0 and MASK_NESTEDTREE) == 0L) {
         reader.throwError("Required field 'nestedTree' missing in JSON")
       }
     }
   }
 
   /**
    * Robust deserialization for [ComplexObject].
    */
   override fun deserialize(reader: GhostJsonReader): ComplexObject {
     var idValue: Int = 0
     var userIdValue: Long = 0L
     var nameValue: String? = null
     var emailValue: String? = null
     var scoreValue: Double = 0.0
     var ratingValue: Float = 0.0f
     var isActiveValue: Boolean = false
     var biographyValue: String? = null
     var nullableAgeValue: Int? = null
     var nullableNameValue: String? = null
     var nullableScoreValue: Double? = null
     var defaultRoleValue: String? = null
     var defaultPriorityValue: Priority? = null
     var defaultCountValue: Int = 0
     var priorityValue: Priority? = null
     var tagsValue: List<String>? = null
     var scoresValue: List<Double>? = null
     var metadataValue: Map<String, String>? = null
     var addressValue: Address? = null
     var tagObjectsValue: List<Tag>? = null
     var nestedTreeValue: NestedContainer? = null
     var mask0 = 0L
     reader.beginObject()
     while (true) {
       val index = reader.selectNameAndConsume(OPTIONS)
       when (index) {
         0 -> {
           idValue = reader.nextInt()
           mask0 = mask0 or MASK_ID
         }
         1 -> {
           userIdValue = reader.nextLong()
           mask0 = mask0 or MASK_USERID
         }
         2 -> {
           nameValue = reader.nextString()
           mask0 = mask0 or MASK_NAME
         }
         3 -> {
           emailValue = reader.nextString()
           mask0 = mask0 or MASK_EMAIL
         }
         4 -> {
           scoreValue = reader.nextDouble()
           mask0 = mask0 or MASK_SCORE
         }
         5 -> {
           ratingValue = reader.nextFloat()
           mask0 = mask0 or MASK_RATING
         }
         6 -> {
           isActiveValue = reader.nextBoolean()
           mask0 = mask0 or MASK_ISACTIVE
         }
         7 -> {
           biographyValue = reader.nextString()
           mask0 = mask0 or MASK_BIOGRAPHY
         }
         8 -> {
           nullableAgeValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextInt()
           mask0 = mask0 or MASK_NULLABLEAGE
         }
         9 -> {
           nullableNameValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
           mask0 = mask0 or MASK_NULLABLENAME
         }
         10 -> {
           nullableScoreValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextDouble()
           mask0 = mask0 or MASK_NULLABLESCORE
         }
         11 -> {
           defaultRoleValue = reader.nextString()
           mask0 = mask0 or MASK_DEFAULTROLE
         }
         12 -> {
           defaultPriorityValue = PrioritySerializer.deserialize(reader)
           mask0 = mask0 or MASK_DEFAULTPRIORITY
         }
         13 -> {
           defaultCountValue = reader.nextInt()
           mask0 = mask0 or MASK_DEFAULTCOUNT
         }
         14 -> {
           priorityValue = PrioritySerializer.deserialize(reader)
           mask0 = mask0 or MASK_PRIORITY
         }
         15 -> {
           tagsValue = reader.readList { reader.nextString() }
           mask0 = mask0 or MASK_TAGS
         }
         16 -> {
           scoresValue = reader.readList { reader.nextDouble() }
           mask0 = mask0 or MASK_SCORES
         }
         17 -> {
           metadataValue = reader.readMap({ reader.nextKey()!! }) { reader.nextString() }
           mask0 = mask0 or MASK_METADATA
         }
         18 -> {
           addressValue = AddressSerializer.deserialize(reader)
           mask0 = mask0 or MASK_ADDRESS
         }
         19 -> {
           tagObjectsValue = reader.readList { TagSerializer.deserialize(reader) }
           mask0 = mask0 or MASK_TAGOBJECTS
         }
         20 -> {
           nestedTreeValue = NestedContainerSerializer.deserialize(reader)
           mask0 = mask0 or MASK_NESTEDTREE
         }
         -1 -> break
         -2 -> {
           reader.skipValue()
         }
       }
     }
     reader.endObject()
     validateRequiredFields(mask0, reader)
     return createInstance(mask0, idValue, userIdValue, nameValue, emailValue, scoreValue, ratingValue, isActiveValue, biographyValue, nullableAgeValue, nullableNameValue, nullableScoreValue, defaultRoleValue, defaultPriorityValue, defaultCountValue, priorityValue, tagsValue, scoresValue, metadataValue, addressValue, tagObjectsValue, nestedTreeValue)
   }
 
   private fun validateRequiredFields(mask0: Long, reader: GhostJsonFlatReader) {
     if ((mask0 and MASK_REQUIRED_0) != MASK_REQUIRED_0) {
       if ((mask0 and MASK_ID) == 0L) {
         reader.throwError("Required field 'id' missing in JSON")
       } else if ((mask0 and MASK_USERID) == 0L) {
         reader.throwError("Required field 'userId' missing in JSON")
       } else if ((mask0 and MASK_NAME) == 0L) {
         reader.throwError("Required field 'name' missing in JSON")
       } else if ((mask0 and MASK_EMAIL) == 0L) {
         reader.throwError("Required field 'email' missing in JSON")
       } else if ((mask0 and MASK_SCORE) == 0L) {
         reader.throwError("Required field 'score' missing in JSON")
       } else if ((mask0 and MASK_RATING) == 0L) {
         reader.throwError("Required field 'rating' missing in JSON")
       } else if ((mask0 and MASK_ISACTIVE) == 0L) {
         reader.throwError("Required field 'isActive' missing in JSON")
       } else if ((mask0 and MASK_BIOGRAPHY) == 0L) {
         reader.throwError("Required field 'biography' missing in JSON")
       } else if ((mask0 and MASK_PRIORITY) == 0L) {
         reader.throwError("Required field 'priority' missing in JSON")
       } else if ((mask0 and MASK_TAGS) == 0L) {
         reader.throwError("Required field 'tags' missing in JSON")
       } else if ((mask0 and MASK_SCORES) == 0L) {
         reader.throwError("Required field 'scores' missing in JSON")
       } else if ((mask0 and MASK_METADATA) == 0L) {
         reader.throwError("Required field 'metadata' missing in JSON")
       } else if ((mask0 and MASK_ADDRESS) == 0L) {
         reader.throwError("Required field 'address' missing in JSON")
       } else if ((mask0 and MASK_TAGOBJECTS) == 0L) {
         reader.throwError("Required field 'tagObjects' missing in JSON")
       } else if ((mask0 and MASK_NESTEDTREE) == 0L) {
         reader.throwError("Required field 'nestedTree' missing in JSON")
       }
     }
   }
 
   /**
    * Robust deserialization for [ComplexObject].
    */
   override fun deserialize(reader: GhostJsonFlatReader): ComplexObject {
     var idValue: Int = 0
     var userIdValue: Long = 0L
     var nameValue: String? = null
     var emailValue: String? = null
     var scoreValue: Double = 0.0
     var ratingValue: Float = 0.0f
     var isActiveValue: Boolean = false
     var biographyValue: String? = null
     var nullableAgeValue: Int? = null
     var nullableNameValue: String? = null
     var nullableScoreValue: Double? = null
     var defaultRoleValue: String? = null
     var defaultPriorityValue: Priority? = null
     var defaultCountValue: Int = 0
     var priorityValue: Priority? = null
     var tagsValue: List<String>? = null
     var scoresValue: List<Double>? = null
     var metadataValue: Map<String, String>? = null
     var addressValue: Address? = null
     var tagObjectsValue: List<Tag>? = null
     var nestedTreeValue: NestedContainer? = null
     var mask0 = 0L
     reader.beginObject()
     while (true) {
       val index = reader.selectNameAndConsume(OPTIONS)
       when (index) {
         0 -> {
           idValue = reader.nextInt()
           mask0 = mask0 or MASK_ID
         }
         1 -> {
           userIdValue = reader.nextLong()
           mask0 = mask0 or MASK_USERID
         }
         2 -> {
           nameValue = reader.nextString()
           mask0 = mask0 or MASK_NAME
         }
         3 -> {
           emailValue = reader.nextString()
           mask0 = mask0 or MASK_EMAIL
         }
         4 -> {
           scoreValue = reader.nextDouble()
           mask0 = mask0 or MASK_SCORE
         }
         5 -> {
           ratingValue = reader.nextFloat()
           mask0 = mask0 or MASK_RATING
         }
         6 -> {
           isActiveValue = reader.nextBoolean()
           mask0 = mask0 or MASK_ISACTIVE
         }
         7 -> {
           biographyValue = reader.nextString()
           mask0 = mask0 or MASK_BIOGRAPHY
         }
         8 -> {
           nullableAgeValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextInt()
           mask0 = mask0 or MASK_NULLABLEAGE
         }
         9 -> {
           nullableNameValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextString()
           mask0 = mask0 or MASK_NULLABLENAME
         }
         10 -> {
           nullableScoreValue = if (reader.isNextNullValue()) { reader.consumeNull(); null } else reader.nextDouble()
           mask0 = mask0 or MASK_NULLABLESCORE
         }
         11 -> {
           defaultRoleValue = reader.nextString()
           mask0 = mask0 or MASK_DEFAULTROLE
         }
         12 -> {
           defaultPriorityValue = PrioritySerializer.deserialize(reader)
           mask0 = mask0 or MASK_DEFAULTPRIORITY
         }
         13 -> {
           defaultCountValue = reader.nextInt()
           mask0 = mask0 or MASK_DEFAULTCOUNT
         }
         14 -> {
           priorityValue = PrioritySerializer.deserialize(reader)
           mask0 = mask0 or MASK_PRIORITY
         }
         15 -> {
           tagsValue = reader.readList { reader.nextString() }
           mask0 = mask0 or MASK_TAGS
         }
         16 -> {
           scoresValue = reader.readList { reader.nextDouble() }
           mask0 = mask0 or MASK_SCORES
         }
         17 -> {
           metadataValue = reader.readMap({ reader.nextKey()!! }) { reader.nextString() }
           mask0 = mask0 or MASK_METADATA
         }
         18 -> {
           addressValue = AddressSerializer.deserialize(reader)
           mask0 = mask0 or MASK_ADDRESS
         }
         19 -> {
           tagObjectsValue = reader.readList { TagSerializer.deserialize(reader) }
           mask0 = mask0 or MASK_TAGOBJECTS
         }
         20 -> {
           nestedTreeValue = NestedContainerSerializer.deserialize(reader)
           mask0 = mask0 or MASK_NESTEDTREE
         }
         -1 -> break
         -2 -> {
           reader.skipValue()
         }
       }
     }
     reader.endObject()
     validateRequiredFields(mask0, reader)
     return createInstance(mask0, idValue, userIdValue, nameValue, emailValue, scoreValue, ratingValue, isActiveValue, biographyValue, nullableAgeValue, nullableNameValue, nullableScoreValue, defaultRoleValue, defaultPriorityValue, defaultCountValue, priorityValue, tagsValue, scoresValue, metadataValue, addressValue, tagObjectsValue, nestedTreeValue)
   }
 
   override fun serialize(writer: GhostJsonWriter, `value`: ComplexObject) {
     writer.beginObject()
     writer.writeField(H_ID, value.id)
     writer.writeField(H_USERID, value.userId)
     writer.writeField(H_NAME, value.name)
     writer.writeField(H_EMAIL, value.email)
     writer.writeField(H_SCORE, value.score)
     writer.writeField(H_RATING, value.rating)
     writer.writeField(H_ISACTIVE, value.isActive)
     writer.writeField(H_BIOGRAPHY, value.biography)
     if (value.nullableAge != null) {
       writer.writeField(H_NULLABLEAGE, value.nullableAge)
     }
     if (value.nullableName != null) {
       writer.writeField(H_NULLABLENAME, value.nullableName)
     }
     if (value.nullableScore != null) {
       writer.writeField(H_NULLABLESCORE, value.nullableScore)
     }
     writer.writeField(H_DEFAULTROLE, value.defaultRole)
     writer.writeNameRaw(H_DEFAULTPRIORITY)
     PrioritySerializer.serialize(writer, value.defaultPriority)
     writer.writeField(H_DEFAULTCOUNT, value.defaultCount)
     writer.writeNameRaw(H_PRIORITY)
     PrioritySerializer.serialize(writer, value.priority)
     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.writeNameRaw(H_SCORES)
     writer.beginArray()
     val size1 = value.scores.size
     for (i1 in 0 until size1) {
       val item1 = value.scores[i1]
       writer.value(item1)
     }
     writer.endArray()
     writer.writeNameRaw(H_METADATA)
     writer.beginObject()
     for ((mapKey2, mapVal2) in value.metadata) {
       writer.name(mapKey2)
       writer.value(mapVal2)
     }
     writer.endObject()
     writer.writeNameRaw(H_ADDRESS)
     AddressSerializer.serialize(writer, value.address)
     writer.writeNameRaw(H_TAGOBJECTS)
     writer.beginArray()
     val size3 = value.tagObjects.size
     for (i3 in 0 until size3) {
       val item3 = value.tagObjects[i3]
       TagSerializer.serialize(writer, item3)
     }
     writer.endArray()
     writer.writeNameRaw(H_NESTEDTREE)
     NestedContainerSerializer.serialize(writer, value.nestedTree)
     writer.endObject()
   }
 
   override fun serialize(writer: GhostJsonFlatWriter, `value`: ComplexObject) {
     writer.beginObject()
     writer.writeField(H_ID, value.id)
     writer.writeField(H_USERID, value.userId)
     writer.writeField(H_NAME, value.name)
     writer.writeField(H_EMAIL, value.email)
     writer.writeField(H_SCORE, value.score)
     writer.writeField(H_RATING, value.rating)
     writer.writeField(H_ISACTIVE, value.isActive)
     writer.writeField(H_BIOGRAPHY, value.biography)
     if (value.nullableAge != null) {
       writer.writeField(H_NULLABLEAGE, value.nullableAge)
     }
     if (value.nullableName != null) {
       writer.writeField(H_NULLABLENAME, value.nullableName)
     }
     if (value.nullableScore != null) {
       writer.writeField(H_NULLABLESCORE, value.nullableScore)
     }
     writer.writeField(H_DEFAULTROLE, value.defaultRole)
     writer.writeNameRaw(H_DEFAULTPRIORITY)
     PrioritySerializer.serialize(writer, value.defaultPriority)
     writer.writeField(H_DEFAULTCOUNT, value.defaultCount)
     writer.writeNameRaw(H_PRIORITY)
     PrioritySerializer.serialize(writer, value.priority)
     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.writeNameRaw(H_SCORES)
     writer.beginArray()
     val size1 = value.scores.size
     for (i1 in 0 until size1) {
       val item1 = value.scores[i1]
       writer.value(item1)
     }
     writer.endArray()
     writer.writeNameRaw(H_METADATA)
     writer.beginObject()
     for ((mapKey2, mapVal2) in value.metadata) {
       writer.name(mapKey2)
       writer.value(mapVal2)
     }
     writer.endObject()
     writer.writeNameRaw(H_ADDRESS)
     AddressSerializer.serialize(writer, value.address)
     writer.writeNameRaw(H_TAGOBJECTS)
     writer.beginArray()
     val size3 = value.tagObjects.size
     for (i3 in 0 until size3) {
       val item3 = value.tagObjects[i3]
       TagSerializer.serialize(writer, item3)
     }
     writer.endArray()
     writer.writeNameRaw(H_NESTEDTREE)
     NestedContainerSerializer.serialize(writer, value.nestedTree)
     writer.endObject()
   }
 
   override fun warmUp() {
     try {
       val reader1 = GhostJsonReader("{\"id\":0,\"userId\":0,\"name\":\"\",\"email\":\"\",\"score\":0.0,\"rating\":0.0,\"isActive\":false,\"biography\":\"\",\"priority\":{},\"tags\":[],\"scores\":[],\"metadata\":{},\"address\":{},\"tagObjects\":[],\"nestedTree\":{}}".encodeToByteArray())
       deserialize(reader1)
     } catch (_: Exception) {
     }
     try {
       val reader2 = GhostJsonFlatReader("{\"id\":0,\"userId\":0,\"name\":\"\",\"email\":\"\",\"score\":0.0,\"rating\":0.0,\"isActive\":false,\"biography\":\"\",\"priority\":{},\"tags\":[],\"scores\":[],\"metadata\":{},\"address\":{},\"tagObjects\":[],\"nestedTree\":{}}".encodeToByteArray())
       deserialize(reader2)
     } catch (_: Exception) {
     }
   }
 }