From ff72bee1fb092c47666878000d734175aa6d99f3 Mon Sep 17 00:00:00 2001 From: Alexander Sysoev Date: Mon, 29 Sep 2025 13:10:39 +0200 Subject: [PATCH 1/3] Added hasCode, equals and toString support and tests --- .../rpc/protobuf/test/ComparisonTest.kt | 172 ++++++++++++++++ .../kotlinx/rpc/protobuf/test/ToStringTest.kt | 172 ++++++++++++++++ .../src/commonTest/proto/equals.proto | 22 ++ .../src/commonTest/proto/to_string.proto | 23 +++ .../ModelToProtobufKotlinCommonGenerator.kt | 193 +++++++++++++++++- 5 files changed, 580 insertions(+), 2 deletions(-) create mode 100644 protobuf/protobuf-core/src/commonTest/kotlin/kotlinx/rpc/protobuf/test/ComparisonTest.kt create mode 100644 protobuf/protobuf-core/src/commonTest/kotlin/kotlinx/rpc/protobuf/test/ToStringTest.kt create mode 100644 protobuf/protobuf-core/src/commonTest/proto/equals.proto create mode 100644 protobuf/protobuf-core/src/commonTest/proto/to_string.proto diff --git a/protobuf/protobuf-core/src/commonTest/kotlin/kotlinx/rpc/protobuf/test/ComparisonTest.kt b/protobuf/protobuf-core/src/commonTest/kotlin/kotlinx/rpc/protobuf/test/ComparisonTest.kt new file mode 100644 index 000000000..9167dcfd3 --- /dev/null +++ b/protobuf/protobuf-core/src/commonTest/kotlin/kotlinx/rpc/protobuf/test/ComparisonTest.kt @@ -0,0 +1,172 @@ +/* + * Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. + */ + +package kotlinx.rpc.protobuf.test + +import Equals +import invoke +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertNotEquals + +class ComparisonTest { + @Test + fun equal() { + val msg1 = Equals { + str1 = "hello" + bytes1 = byteArrayOf(1, 2, 3) + someEnum2 = Equals.SomeEnum.VALUE1 + } + + val msg2 = Equals { + str1 = "hello" + bytes1 = byteArrayOf(1, 2, 3) + someEnum2 = Equals.SomeEnum.VALUE1 + } + + assertEquals(msg1, msg2) + assertEquals(msg1.hashCode(), msg2.hashCode()) + } + + @Test + fun equalWithOptional() { + val msg1 = Equals { + str1 = "hello" + str2 = "world" + bytes1 = byteArrayOf(1, 2, 3) + bytes2 = byteArrayOf(1, 2, 4) + someEnum2 = Equals.SomeEnum.VALUE1 + } + + val msg2 = Equals { + str1 = "hello" + str2 = "world" + bytes1 = byteArrayOf(1, 2, 3) + bytes2 = byteArrayOf(1, 2, 4) + someEnum2 = Equals.SomeEnum.VALUE1 + } + + assertEquals(msg1, msg2) + assertEquals(msg1.hashCode(), msg2.hashCode()) + } + + @Test + fun equalWithUnsetOptionalReference() { + val msg1 = Equals { + str1 = "hello" + bytes1 = byteArrayOf(1, 2, 3) + nested = Equals.Nested { + content = "hello" + } + someEnum2 = Equals.SomeEnum.VALUE1 + } + + val msg2 = Equals { + str1 = "hello" + bytes1 = byteArrayOf(1, 2, 3) + someEnum2 = Equals.SomeEnum.VALUE1 + } + + assertNotEquals(msg1, msg2) + assertNotEquals(msg1.hashCode(), msg2.hashCode()) + } + + @Test + fun notEqual() { + val msg1 = Equals { + str1 = "hello1" + bytes1 = byteArrayOf(1, 2, 3) + someEnum2 = Equals.SomeEnum.VALUE1 + } + + val msg2 = Equals { + str1 = "hello" + bytes1 = byteArrayOf(1, 2, 3) + someEnum2 = Equals.SomeEnum.VALUE1 + } + + assertNotEquals(msg1, msg2) + assertNotEquals(msg1.hashCode(), msg2.hashCode()) + } + + @Test + fun differentOneOf() { + val msg1 = Equals { + str1 = "hello" + bytes1 = byteArrayOf(1, 2, 3) + oneof = Equals.Oneof.Option1(42) + someEnum2 = Equals.SomeEnum.VALUE1 + } + + val msg2 = Equals { + str1 = "hello" + bytes1 = byteArrayOf(1, 2, 3) + oneof = Equals.Oneof.Option2(42) + someEnum2 = Equals.SomeEnum.VALUE1 + } + + assertNotEquals(msg1, msg2) + assertNotEquals(msg1.hashCode(), msg2.hashCode()) + } + + @Test + fun sameOneOf() { + val msg1 = Equals { + str1 = "hello" + bytes1 = byteArrayOf(1, 2, 3) + oneof = Equals.Oneof.Option1(42) + someEnum2 = Equals.SomeEnum.VALUE1 + } + + val msg2 = Equals { + str1 = "hello" + bytes1 = byteArrayOf(1, 2, 3) + oneof = Equals.Oneof.Option1(42) + someEnum2 = Equals.SomeEnum.VALUE1 + } + + assertEquals(msg1, msg2) + assertEquals(msg1.hashCode(), msg2.hashCode()) + } + + @Test + fun sameEnum() { + val msg1 = Equals { + str1 = "hello" + bytes1 = byteArrayOf(1, 2, 3) + someEnum = Equals.SomeEnum.VALUE1 + someEnum2 = Equals.SomeEnum.VALUE1 + } + + val msg2 = Equals { + str1 = "hello" + bytes1 = byteArrayOf(1, 2, 3) + someEnum = Equals.SomeEnum.VALUE1 + someEnum2 = Equals.SomeEnum.VALUE1 + } + + assertEquals(msg1, msg2) + assertEquals(msg1.hashCode(), msg2.hashCode()) + } + + @Test + fun differentEnum() { + val msg1 = Equals { + str1 = "hello" + bytes1 = byteArrayOf(1, 2, 3) + someEnum = Equals.SomeEnum.VALUE1 + someEnum2 = Equals.SomeEnum.VALUE2 + } + + val msg2 = Equals { + str1 = "hello" + bytes1 = byteArrayOf(1, 2, 3) + someEnum = Equals.SomeEnum.VALUE2 + someEnum2 = Equals.SomeEnum.VALUE2 + } + + assertNotEquals(msg1, msg2) + assertNotEquals(msg1.hashCode(), msg2.hashCode()) + } +} diff --git a/protobuf/protobuf-core/src/commonTest/kotlin/kotlinx/rpc/protobuf/test/ToStringTest.kt b/protobuf/protobuf-core/src/commonTest/kotlin/kotlinx/rpc/protobuf/test/ToStringTest.kt new file mode 100644 index 000000000..e9a5a9090 --- /dev/null +++ b/protobuf/protobuf-core/src/commonTest/kotlin/kotlinx/rpc/protobuf/test/ToStringTest.kt @@ -0,0 +1,172 @@ +/* + * Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. + */ + +package kotlinx.rpc.protobuf.test + +import ToString +import invoke +import kotlin.test.Test +import kotlin.test.assertEquals + +class ToStringTest { + @Test + fun noOptionals() { + val message = ToString { + text = "hello" + bytes = byteArrayOf(1, 2, 3) + } + + assertEquals(""" + ToString( + text=hello, + bytes=[1, 2, 3], + optionalBytes=, + nested=, + enum=, + list=[], + map={}, + oneof=null, + ) + """.trimIndent(), message.toString()) + } + + @Test + fun withOptionals() { + val message = ToString { + text = "hello" + bytes = byteArrayOf(1, 2, 3) + optionalBytes = byteArrayOf(1, 2, 4) + nested = ToString.Nested { } + enum = ToString.SomeEnum.VALUE1 + } + + assertEquals(""" + ToString( + text=hello, + bytes=[1, 2, 3], + optionalBytes=[1, 2, 4], + nested=ToString.Nested( + recursive=, + ), + enum=VALUE1, + list=[], + map={}, + oneof=null, + ) + """.trimIndent(), message.toString()) + } + + @Test + fun list() { + val message = ToString { + text = "hello" + bytes = byteArrayOf(1, 2, 3) + list = listOf("a", "b", "c") + } + assertEquals(""" + ToString( + text=hello, + bytes=[1, 2, 3], + optionalBytes=, + nested=, + enum=, + list=[a, b, c], + map={}, + oneof=null, + ) + """.trimIndent(), message.toString()) + } + + @Test + fun map() { + val message = ToString { + text = "hello" + bytes = byteArrayOf(1, 2, 3) + map = mapOf(1 to 1, 2 to 2, 3 to 3) + } + assertEquals(""" + ToString( + text=hello, + bytes=[1, 2, 3], + optionalBytes=, + nested=, + enum=, + list=[], + map={1=1, 2=2, 3=3}, + oneof=null, + ) + """.trimIndent(), message.toString()) + } + + @Test + fun oneOf() { + val message = ToString { + text = "hello" + bytes = byteArrayOf(1, 2, 3) + oneof = ToString.Oneof.Option1("option1_value") + } + assertEquals(""" + ToString( + text=hello, + bytes=[1, 2, 3], + optionalBytes=, + nested=, + enum=, + list=[], + map={}, + oneof=Option1(value=option1_value), + ) + """.trimIndent(), message.toString()) + + val message2 = ToString { + text = "hello" + bytes = byteArrayOf(1, 2, 3) + oneof = ToString.Oneof.Option3(42) + } + assertEquals(""" + ToString( + text=hello, + bytes=[1, 2, 3], + optionalBytes=, + nested=, + enum=, + list=[], + map={}, + oneof=Option3(value=42), + ) + """.trimIndent(), message2.toString()) + } + + @Test + fun recursive() { + val message = ToString { + text = "hello" + bytes = byteArrayOf(1, 2, 3) + nested = ToString.Nested { + recursive = ToString.Nested { + recursive = ToString.Nested { } + } + } + } + + assertEquals(""" + ToString( + text=hello, + bytes=[1, 2, 3], + optionalBytes=, + nested=ToString.Nested( + recursive=ToString.Nested( + recursive=ToString.Nested( + recursive=, + ), + ), + ), + enum=, + list=[], + map={}, + oneof=null, + ) + """.trimIndent(), message.toString()) + } +} diff --git a/protobuf/protobuf-core/src/commonTest/proto/equals.proto b/protobuf/protobuf-core/src/commonTest/proto/equals.proto new file mode 100644 index 000000000..05ecd7577 --- /dev/null +++ b/protobuf/protobuf-core/src/commonTest/proto/equals.proto @@ -0,0 +1,22 @@ +syntax = "proto2"; + +message Equals { + required string str1 = 1; + optional string str2 = 2 [default = "abc"]; + required bytes bytes1 = 3; + optional bytes bytes2 = 4 [default = "abc"]; + oneof oneof { + sint32 option1 = 5; + sint32 option2 = 6; + } + optional Nested nested = 7; + message Nested { + required string content = 1; + } + optional SomeEnum someEnum = 8; + required SomeEnum someEnum2 = 9; + enum SomeEnum { + VALUE1 = 0; + VALUE2 = 1; + } +} diff --git a/protobuf/protobuf-core/src/commonTest/proto/to_string.proto b/protobuf/protobuf-core/src/commonTest/proto/to_string.proto new file mode 100644 index 000000000..5f7c03e68 --- /dev/null +++ b/protobuf/protobuf-core/src/commonTest/proto/to_string.proto @@ -0,0 +1,23 @@ +syntax = "proto2"; + +message ToString { + required string text = 1; + required bytes bytes = 2; + optional bytes optionalBytes = 3; + message Nested { + optional Nested recursive = 1; + } + optional Nested nested = 4; + enum SomeEnum { + VALUE1 = 0; + VALUE2 = 1; + } + optional SomeEnum enum = 5; + oneof oneof { + string option1 = 6; + string option2 = 7; + int32 option3 = 8; + } + repeated string list = 9; + map map = 10; +} diff --git a/protoc-gen/protobuf/src/main/kotlin/kotlinx/rpc/protoc/gen/ModelToProtobufKotlinCommonGenerator.kt b/protoc-gen/protobuf/src/main/kotlin/kotlinx/rpc/protoc/gen/ModelToProtobufKotlinCommonGenerator.kt index a05260ab8..238f8b1b6 100644 --- a/protoc-gen/protobuf/src/main/kotlin/kotlinx/rpc/protoc/gen/ModelToProtobufKotlinCommonGenerator.kt +++ b/protoc-gen/protobuf/src/main/kotlin/kotlinx/rpc/protoc/gen/ModelToProtobufKotlinCommonGenerator.kt @@ -145,7 +145,7 @@ class ModelToProtobufKotlinCommonGenerator( val override = if (declaration.isUserFacing) "override" else "" declaration.actualFields.forEachIndexed { i, field -> val value = when { - field.nullable -> { + field.nullable && field.presenceIdx == null -> { "null" } @@ -166,7 +166,7 @@ class ModelToProtobufKotlinCommonGenerator( value = value, isVar = true, type = field.typeFqName(), - propertyInitializer = if (field.nullable) { + propertyInitializer = if (field.nullable && field.presenceIdx == null) { CodeGenerator.PropertyInitializer.PLAIN } else { CodeGenerator.PropertyInitializer.DELEGATE @@ -175,6 +175,11 @@ class ModelToProtobufKotlinCommonGenerator( ) } + generateHashCode(declaration) + generateOneOfHashCode(declaration) + generateEquals(declaration) + generateToString(declaration) + declaration.nestedDeclarations.forEach { nested -> generateInternalMessage(nested) } @@ -191,6 +196,185 @@ class ModelToProtobufKotlinCommonGenerator( } } + private fun CodeGenerator.generateHashCode(declaration: MessageDeclaration) { + val fields = declaration.actualFields + function( + name = "hashCode", + modifiers = "override", + returnType = "kotlin.Int", + ) { + addLine("checkRequiredFields()") + when { + fields.size == 1 -> { + val expr = fields[0].hashExprForHashCode() + addLine("return $expr") + } + + fields.isNotEmpty() -> { + addLine("var result = ${fields.first().hashExprForHashCode()}") + fields.drop(1).forEach { f -> + addLine("result = 31 * result + ${f.hashExprForHashCode()}") + } + addLine("return result") + } + + else -> { + addLine("return this::class.hashCode()") + } + } + } + } + + private fun FieldDeclaration.hashExprForHashCode(): String { + return when (val t = type) { + is FieldType.IntegralType -> { + when (t) { + FieldType.IntegralType.BYTES -> { + if (nullable) "(${name}?.contentHashCode() ?: 0)" else "${name}.contentHashCode()" + } + else -> { + if (nullable) "(${name}?.hashCode() ?: 0)" else "${name}.hashCode()" + } + } + } + + is FieldType.OneOf -> { + if (nullable) "(${name}?.oneOfHashCode() ?: 0)" else "${name}.oneOfHashCode() + " + } + + is FieldType.Message, is FieldType.Enum, is FieldType.List, is FieldType.Map -> { + if (nullable) "(${name}?.hashCode() ?: 0)" else "${name}.hashCode()" + } + }.let { + if (presenceIdx != null) { + "if (presenceMask[${presenceIdx}]) $it else 0" + } else { + it + } + } + } + + private fun CodeGenerator.generateOneOfHashCode(declaration: MessageDeclaration) { + declaration.oneOfDeclarations.forEach { oneOf -> + function( + name = "oneOfHashCode", + returnType = "kotlin.Int", + contextReceiver = oneOf.name.safeFullName(), + ) { + whenBlock(prefix = "val offset = ", condition = "this") { + oneOf.variants.forEachIndexed { index, variant -> + val variantName = "${oneOf.name.safeFullName()}.${variant.name}" + addLine("is $variantName -> $index") + } + } + addLine("return hashCode() + offset") + } + } + } + + private fun CodeGenerator.generateEquals(declaration: MessageDeclaration) { + val fields = declaration.actualFields + function( + name = "equals", + modifiers = "override", + args = "other: kotlin.Any?", + returnType = "kotlin.Boolean", + ) { + addLine("checkRequiredFields()") + addLine("if (this === other) return true") + addLine("if (other == null || this::class != other::class) return false") + addLine("other as ${declaration.internalClassName()}") + addLine("other.checkRequiredFields()") + if (fields.isNotEmpty()) { + fields.forEach { field -> + if (field.presenceIdx != null) { + fieldEqualsCheck( + presenceCheck = "presenceMask[${field.presenceIdx}] != other.presenceMask[${field.presenceIdx}] || presenceMask[${field.presenceIdx}] && ", + field = field, + ) + } else { + fieldEqualsCheck(presenceCheck = "", field = field) + } + } + } + addLine("return true") + } + } + + private fun CodeGenerator.fieldEqualsCheck(presenceCheck: String, field: FieldDeclaration) { + when (val t = field.type) { + is FieldType.IntegralType -> { + if (t == FieldType.IntegralType.BYTES) { + if (field.nullable) { + addLine("if ($presenceCheck((${field.name} != null && (other.${field.name} == null || !${field.name}!!.contentEquals(other.${field.name}!!))) || other.${field.name} != null)) return false") + } else { + addLine("if ($presenceCheck!${field.name}.contentEquals(other.${field.name})) return false") + } + } else { + addLine("if ($presenceCheck${field.name} != other.${field.name}) return false") + } + } + is FieldType.Message, + is FieldType.Enum, + is FieldType.OneOf, + is FieldType.List, + is FieldType.Map -> { + addLine("if ($presenceCheck${field.name} != other.${field.name}) return false") + } + } + } + + private fun CodeGenerator.generateToString(declaration: MessageDeclaration) { + function( + name = "toString", + modifiers = "override", + returnType = "kotlin.String", + ) { + addLine("return asString()") + } + + function( + name = "asString", + args = "indent: kotlin.Int = 0", + returnType = "kotlin.String", + ) { + addLine("checkRequiredFields()") + addLine("val indentString = \" \".repeat(indent)") + addLine("val nextIndentString = \" \".repeat(indent + ${config.indentSize})") + scope("return buildString") { + addLine("appendLine(\"${declaration.name}(\")") + declaration.actualFields.forEach { + val suffix = when (it.type) { + FieldType.IntegralType.BYTES -> { + ".contentToString()" + } + is FieldType.Message -> { + ".asInternal().asString(indent = indent + ${config.indentSize})" + } + else -> { + "" + } + } + + val valueBuilder: CodeGenerator.() -> Unit = { + addLine("appendLine(\"\${nextIndentString}${it.name}=\${${it.name}$suffix},\")") + } + + if (it.presenceIdx != null) { + ifBranch(condition = "presenceMask[${it.presenceIdx}]", ifBlock = { + valueBuilder() + }) { + addLine("appendLine(\"\${nextIndentString}${it.name}=,\")") + } + } else { + valueBuilder() + } + } + addLine("append(\"\${indentString})\")") + } + } + } + private fun CodeGenerator.generatePresenceIndicesObject(declaration: MessageDeclaration) { if (declaration.presenceMaskSize == 0) { return @@ -908,6 +1092,10 @@ class ModelToProtobufKotlinCommonGenerator( } private fun FieldDeclaration.safeDefaultValue(): String { + if (nullable) { + return "null" + } + if (!dec.hasDefaultValue()) { return type.defaultValue ?: error("No default value for field $name") } @@ -1018,6 +1206,7 @@ class ModelToProtobufKotlinCommonGenerator( clazz( name = variant.name.simpleName, comment = variant.doc, + modifiers = "data", declarationType = CodeGenerator.DeclarationType.Object, superTypes = listOf("$className(number = ${variant.dec.number})"), deprecation = if (variant.deprecated) DeprecationLevel.WARNING else null, From 76409fe1eb5114adee011ef58ea689f97df0d826 Mon Sep 17 00:00:00 2001 From: Alexander Sysoev Date: Mon, 29 Sep 2025 13:11:01 +0200 Subject: [PATCH 2/3] Update generated protos --- .../com/google/protobuf/kotlin/Struct.kt | 2 +- .../com/google/protobuf/kotlin/Type.kt | 52 +- .../protobuf/kotlin/_rpc_internal/Any.kt | 34 + .../protobuf/kotlin/_rpc_internal/Api.kt | 137 + .../protobuf/kotlin/_rpc_internal/Duration.kt | 34 + .../protobuf/kotlin/_rpc_internal/Empty.kt | 28 + .../kotlin/_rpc_internal/FieldMask.kt | 30 + .../kotlin/_rpc_internal/SourceContext.kt | 30 + .../protobuf/kotlin/_rpc_internal/Struct.kt | 142 + .../kotlin/_rpc_internal/Timestamp.kt | 34 + .../protobuf/kotlin/_rpc_internal/Type.kt | 239 ++ .../protobuf/kotlin/_rpc_internal/Wrappers.kt | 270 ++ .../rpc/protobuf/internal/InternalMessage.kt | 3 +- .../protobuf/conformance/Conformance.kt | 22 +- .../conformance/_rpc_internal/Conformance.kt | 205 ++ .../edition2023/TestMessagesEdition2023.kt | 14 +- .../_rpc_internal/TestMessagesEdition2023.kt | 1522 +++++++- .../proto2/TestMessagesProto2Editions.kt | 26 +- .../TestMessagesProto2Editions.kt | 3071 ++++++++++++++++- .../proto3/TestMessagesProto3Editions.kt | 24 +- .../TestMessagesProto3Editions.kt | 1342 +++++++ .../proto2/TestMessagesProto2.kt | 26 +- .../_rpc_internal/TestMessagesProto2.kt | 3071 ++++++++++++++++- .../proto3/TestMessagesProto3.kt | 24 +- .../_rpc_internal/TestMessagesProto3.kt | 1342 +++++++ 25 files changed, 11485 insertions(+), 239 deletions(-) diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/Struct.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/Struct.kt index 63608a75d..5dc863986 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/Struct.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/Struct.kt @@ -114,7 +114,7 @@ public sealed class NullValue(public open val number: Int) { /** * Null value. */ - public object NULL_VALUE: NullValue(number = 0) + public data object NULL_VALUE: NullValue(number = 0) public data class UNRECOGNIZED(override val number: Int): NullValue(number) diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/Type.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/Type.kt index 8eba847cb..1a2836671 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/Type.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/Type.kt @@ -95,97 +95,97 @@ public interface Field { /** * Field type unknown. */ - public object TYPE_UNKNOWN: Kind(number = 0) + public data object TYPE_UNKNOWN: Kind(number = 0) /** * Field type double. */ - public object TYPE_DOUBLE: Kind(number = 1) + public data object TYPE_DOUBLE: Kind(number = 1) /** * Field type float. */ - public object TYPE_FLOAT: Kind(number = 2) + public data object TYPE_FLOAT: Kind(number = 2) /** * Field type int64. */ - public object TYPE_INT64: Kind(number = 3) + public data object TYPE_INT64: Kind(number = 3) /** * Field type uint64. */ - public object TYPE_UINT64: Kind(number = 4) + public data object TYPE_UINT64: Kind(number = 4) /** * Field type int32. */ - public object TYPE_INT32: Kind(number = 5) + public data object TYPE_INT32: Kind(number = 5) /** * Field type fixed64. */ - public object TYPE_FIXED64: Kind(number = 6) + public data object TYPE_FIXED64: Kind(number = 6) /** * Field type fixed32. */ - public object TYPE_FIXED32: Kind(number = 7) + public data object TYPE_FIXED32: Kind(number = 7) /** * Field type bool. */ - public object TYPE_BOOL: Kind(number = 8) + public data object TYPE_BOOL: Kind(number = 8) /** * Field type string. */ - public object TYPE_STRING: Kind(number = 9) + public data object TYPE_STRING: Kind(number = 9) /** * Field type group. Proto2 syntax only, and deprecated. */ - public object TYPE_GROUP: Kind(number = 10) + public data object TYPE_GROUP: Kind(number = 10) /** * Field type message. */ - public object TYPE_MESSAGE: Kind(number = 11) + public data object TYPE_MESSAGE: Kind(number = 11) /** * Field type bytes. */ - public object TYPE_BYTES: Kind(number = 12) + public data object TYPE_BYTES: Kind(number = 12) /** * Field type uint32. */ - public object TYPE_UINT32: Kind(number = 13) + public data object TYPE_UINT32: Kind(number = 13) /** * Field type enum. */ - public object TYPE_ENUM: Kind(number = 14) + public data object TYPE_ENUM: Kind(number = 14) /** * Field type sfixed32. */ - public object TYPE_SFIXED32: Kind(number = 15) + public data object TYPE_SFIXED32: Kind(number = 15) /** * Field type sfixed64. */ - public object TYPE_SFIXED64: Kind(number = 16) + public data object TYPE_SFIXED64: Kind(number = 16) /** * Field type sint32. */ - public object TYPE_SINT32: Kind(number = 17) + public data object TYPE_SINT32: Kind(number = 17) /** * Field type sint64. */ - public object TYPE_SINT64: Kind(number = 18) + public data object TYPE_SINT64: Kind(number = 18) public data class UNRECOGNIZED(override val number: Int): Kind(number) @@ -201,22 +201,22 @@ public interface Field { /** * For fields with unknown cardinality. */ - public object CARDINALITY_UNKNOWN: Cardinality(number = 0) + public data object CARDINALITY_UNKNOWN: Cardinality(number = 0) /** * For optional fields. */ - public object CARDINALITY_OPTIONAL: Cardinality(number = 1) + public data object CARDINALITY_OPTIONAL: Cardinality(number = 1) /** * For required fields. Proto2 syntax only. */ - public object CARDINALITY_REQUIRED: Cardinality(number = 2) + public data object CARDINALITY_REQUIRED: Cardinality(number = 2) /** * For repeated fields. */ - public object CARDINALITY_REPEATED: Cardinality(number = 3) + public data object CARDINALITY_REPEATED: Cardinality(number = 3) public data class UNRECOGNIZED(override val number: Int): Cardinality(number) @@ -313,17 +313,17 @@ public sealed class Syntax(public open val number: Int) { /** * Syntax `proto2`. */ - public object SYNTAX_PROTO2: Syntax(number = 0) + public data object SYNTAX_PROTO2: Syntax(number = 0) /** * Syntax `proto3`. */ - public object SYNTAX_PROTO3: Syntax(number = 1) + public data object SYNTAX_PROTO3: Syntax(number = 1) /** * Syntax `editions`. */ - public object SYNTAX_EDITIONS: Syntax(number = 2) + public data object SYNTAX_EDITIONS: Syntax(number = 2) public data class UNRECOGNIZED(override val number: Int): Syntax(number) diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Any.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Any.kt index 9a603ad93..2b77f2fd1 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Any.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Any.kt @@ -12,6 +12,40 @@ public class AnyInternal: com.google.protobuf.kotlin.Any, kotlinx.rpc.protobuf.i public override var typeUrl: String by MsgFieldDelegate { "" } public override var value: ByteArray by MsgFieldDelegate { byteArrayOf() } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = typeUrl.hashCode() + result = 31 * result + value.contentHashCode() + return result + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as AnyInternal + other.checkRequiredFields() + if (typeUrl != other.typeUrl) return false + if (!value.contentEquals(other.value)) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Any(") + appendLine("${nextIndentString}typeUrl=${typeUrl},") + appendLine("${nextIndentString}value=${value.contentToString()},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.Any): kotlinx.rpc.protobuf.input.stream.InputStream { diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Api.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Api.kt index ac55d87a5..b437164df 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Api.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Api.kt @@ -21,6 +21,60 @@ public class ApiInternal: com.google.protobuf.kotlin.Api, kotlinx.rpc.protobuf.i public override var mixins: List by MsgFieldDelegate { mutableListOf() } public override var syntax: com.google.protobuf.kotlin.Syntax by MsgFieldDelegate { com.google.protobuf.kotlin.Syntax.SYNTAX_PROTO2 } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = name.hashCode() + result = 31 * result + methods.hashCode() + result = 31 * result + options.hashCode() + result = 31 * result + version.hashCode() + result = 31 * result + if (presenceMask[0]) sourceContext.hashCode() else 0 + result = 31 * result + mixins.hashCode() + result = 31 * result + syntax.hashCode() + return result + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ApiInternal + other.checkRequiredFields() + if (name != other.name) return false + if (methods != other.methods) return false + if (options != other.options) return false + if (version != other.version) return false + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && sourceContext != other.sourceContext) return false + if (mixins != other.mixins) return false + if (syntax != other.syntax) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Api(") + appendLine("${nextIndentString}name=${name},") + appendLine("${nextIndentString}methods=${methods},") + appendLine("${nextIndentString}options=${options},") + appendLine("${nextIndentString}version=${version},") + if (presenceMask[0]) { + appendLine("${nextIndentString}sourceContext=${sourceContext.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}sourceContext=,") + } + + appendLine("${nextIndentString}mixins=${mixins},") + appendLine("${nextIndentString}syntax=${syntax},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.Api): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -61,6 +115,55 @@ public class MethodInternal: com.google.protobuf.kotlin.Method, kotlinx.rpc.prot public override var options: List by MsgFieldDelegate { mutableListOf() } public override var syntax: com.google.protobuf.kotlin.Syntax by MsgFieldDelegate { com.google.protobuf.kotlin.Syntax.SYNTAX_PROTO2 } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = name.hashCode() + result = 31 * result + requestTypeUrl.hashCode() + result = 31 * result + requestStreaming.hashCode() + result = 31 * result + responseTypeUrl.hashCode() + result = 31 * result + responseStreaming.hashCode() + result = 31 * result + options.hashCode() + result = 31 * result + syntax.hashCode() + return result + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MethodInternal + other.checkRequiredFields() + if (name != other.name) return false + if (requestTypeUrl != other.requestTypeUrl) return false + if (requestStreaming != other.requestStreaming) return false + if (responseTypeUrl != other.responseTypeUrl) return false + if (responseStreaming != other.responseStreaming) return false + if (options != other.options) return false + if (syntax != other.syntax) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Method(") + appendLine("${nextIndentString}name=${name},") + appendLine("${nextIndentString}requestTypeUrl=${requestTypeUrl},") + appendLine("${nextIndentString}requestStreaming=${requestStreaming},") + appendLine("${nextIndentString}responseTypeUrl=${responseTypeUrl},") + appendLine("${nextIndentString}responseStreaming=${responseStreaming},") + appendLine("${nextIndentString}options=${options},") + appendLine("${nextIndentString}syntax=${syntax},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.Method): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -96,6 +199,40 @@ public class MixinInternal: com.google.protobuf.kotlin.Mixin, kotlinx.rpc.protob public override var name: String by MsgFieldDelegate { "" } public override var root: String by MsgFieldDelegate { "" } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = name.hashCode() + result = 31 * result + root.hashCode() + return result + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MixinInternal + other.checkRequiredFields() + if (name != other.name) return false + if (root != other.root) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Mixin(") + appendLine("${nextIndentString}name=${name},") + appendLine("${nextIndentString}root=${root},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.Mixin): kotlinx.rpc.protobuf.input.stream.InputStream { diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Duration.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Duration.kt index 824c79d6c..4c3a44868 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Duration.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Duration.kt @@ -12,6 +12,40 @@ public class DurationInternal: com.google.protobuf.kotlin.Duration, kotlinx.rpc. public override var seconds: Long by MsgFieldDelegate { 0L } public override var nanos: Int by MsgFieldDelegate { 0 } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = seconds.hashCode() + result = 31 * result + nanos.hashCode() + return result + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as DurationInternal + other.checkRequiredFields() + if (seconds != other.seconds) return false + if (nanos != other.nanos) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Duration(") + appendLine("${nextIndentString}seconds=${seconds},") + appendLine("${nextIndentString}nanos=${nanos},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.Duration): kotlinx.rpc.protobuf.input.stream.InputStream { diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Empty.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Empty.kt index 7ce0336c9..cbe8ce7d6 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Empty.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Empty.kt @@ -9,6 +9,34 @@ public class EmptyInternal: com.google.protobuf.kotlin.Empty, kotlinx.rpc.protob @kotlinx.rpc.internal.utils.InternalRpcApi public override val _size: Int by lazy { computeSize() } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as EmptyInternal + other.checkRequiredFields() + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Empty(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.Empty): kotlinx.rpc.protobuf.input.stream.InputStream { diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/FieldMask.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/FieldMask.kt index c04bb2e0b..0b009c190 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/FieldMask.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/FieldMask.kt @@ -11,6 +11,36 @@ public class FieldMaskInternal: com.google.protobuf.kotlin.FieldMask, kotlinx.rp public override var paths: List by MsgFieldDelegate { mutableListOf() } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return paths.hashCode() + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as FieldMaskInternal + other.checkRequiredFields() + if (paths != other.paths) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.FieldMask(") + appendLine("${nextIndentString}paths=${paths},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.FieldMask): kotlinx.rpc.protobuf.input.stream.InputStream { diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/SourceContext.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/SourceContext.kt index 037ff21cb..a321f0e25 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/SourceContext.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/SourceContext.kt @@ -11,6 +11,36 @@ public class SourceContextInternal: com.google.protobuf.kotlin.SourceContext, ko public override var fileName: String by MsgFieldDelegate { "" } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return fileName.hashCode() + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as SourceContextInternal + other.checkRequiredFields() + if (fileName != other.fileName) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.SourceContext(") + appendLine("${nextIndentString}fileName=${fileName},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.SourceContext): kotlinx.rpc.protobuf.input.stream.InputStream { diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Struct.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Struct.kt index d00cc6742..54b2df8c9 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Struct.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Struct.kt @@ -11,6 +11,36 @@ public class StructInternal: com.google.protobuf.kotlin.Struct, kotlinx.rpc.prot public override var fields: Map by MsgFieldDelegate { mutableMapOf() } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return fields.hashCode() + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as StructInternal + other.checkRequiredFields() + if (fields != other.fields) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Struct(") + appendLine("${nextIndentString}fields=${fields},") + append("${indentString})") + } + } + public class FieldsEntryInternal: kotlinx.rpc.protobuf.internal.InternalMessage(fieldsWithPresence = 1) { private object PresenceIndices { public const val value: Int = 0 @@ -22,6 +52,45 @@ public class StructInternal: com.google.protobuf.kotlin.Struct, kotlinx.rpc.prot public var key: String by MsgFieldDelegate { "" } public var value: com.google.protobuf.kotlin.Value by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf.kotlin.ValueInternal() } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + if (presenceMask[0]) value.hashCode() else 0 + return result + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as FieldsEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && value != other.value) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Struct.FieldsEntry(") + appendLine("${nextIndentString}key=${key},") + if (presenceMask[0]) { + appendLine("${nextIndentString}value=${value.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public companion object } @@ -60,6 +129,49 @@ public class ValueInternal: com.google.protobuf.kotlin.Value, kotlinx.rpc.protob public override var kind: com.google.protobuf.kotlin.Value.Kind? = null + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return (kind?.oneOfHashCode() ?: 0) + } + + public fun com.google.protobuf.kotlin.Value.Kind.oneOfHashCode(): kotlin.Int { + val offset = when (this) { + is com.google.protobuf.kotlin.Value.Kind.NullValue -> 0 + is com.google.protobuf.kotlin.Value.Kind.NumberValue -> 1 + is com.google.protobuf.kotlin.Value.Kind.StringValue -> 2 + is com.google.protobuf.kotlin.Value.Kind.BoolValue -> 3 + is com.google.protobuf.kotlin.Value.Kind.StructValue -> 4 + is com.google.protobuf.kotlin.Value.Kind.ListValue -> 5 + } + + return hashCode() + offset + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ValueInternal + other.checkRequiredFields() + if (kind != other.kind) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Value(") + appendLine("${nextIndentString}kind=${kind},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.Value): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -94,6 +206,36 @@ public class ListValueInternal: com.google.protobuf.kotlin.ListValue, kotlinx.rp public override var values: List by MsgFieldDelegate { mutableListOf() } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return values.hashCode() + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ListValueInternal + other.checkRequiredFields() + if (values != other.values) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.ListValue(") + appendLine("${nextIndentString}values=${values},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.ListValue): kotlinx.rpc.protobuf.input.stream.InputStream { diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Timestamp.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Timestamp.kt index 3ff3a1d19..b54a46c5b 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Timestamp.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Timestamp.kt @@ -12,6 +12,40 @@ public class TimestampInternal: com.google.protobuf.kotlin.Timestamp, kotlinx.rp public override var seconds: Long by MsgFieldDelegate { 0L } public override var nanos: Int by MsgFieldDelegate { 0 } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = seconds.hashCode() + result = 31 * result + nanos.hashCode() + return result + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as TimestampInternal + other.checkRequiredFields() + if (seconds != other.seconds) return false + if (nanos != other.nanos) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Timestamp(") + appendLine("${nextIndentString}seconds=${seconds},") + appendLine("${nextIndentString}nanos=${nanos},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.Timestamp): kotlinx.rpc.protobuf.input.stream.InputStream { diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Type.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Type.kt index b84a764c3..e8e5c5a7c 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Type.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Type.kt @@ -21,6 +21,60 @@ public class TypeInternal: com.google.protobuf.kotlin.Type, kotlinx.rpc.protobuf public override var syntax: com.google.protobuf.kotlin.Syntax by MsgFieldDelegate { com.google.protobuf.kotlin.Syntax.SYNTAX_PROTO2 } public override var edition: String by MsgFieldDelegate { "" } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = name.hashCode() + result = 31 * result + fields.hashCode() + result = 31 * result + oneofs.hashCode() + result = 31 * result + options.hashCode() + result = 31 * result + if (presenceMask[0]) sourceContext.hashCode() else 0 + result = 31 * result + syntax.hashCode() + result = 31 * result + edition.hashCode() + return result + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as TypeInternal + other.checkRequiredFields() + if (name != other.name) return false + if (fields != other.fields) return false + if (oneofs != other.oneofs) return false + if (options != other.options) return false + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && sourceContext != other.sourceContext) return false + if (syntax != other.syntax) return false + if (edition != other.edition) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Type(") + appendLine("${nextIndentString}name=${name},") + appendLine("${nextIndentString}fields=${fields},") + appendLine("${nextIndentString}oneofs=${oneofs},") + appendLine("${nextIndentString}options=${options},") + if (presenceMask[0]) { + appendLine("${nextIndentString}sourceContext=${sourceContext.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}sourceContext=,") + } + + appendLine("${nextIndentString}syntax=${syntax},") + appendLine("${nextIndentString}edition=${edition},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.Type): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -64,6 +118,64 @@ public class FieldInternal: com.google.protobuf.kotlin.Field, kotlinx.rpc.protob public override var jsonName: String by MsgFieldDelegate { "" } public override var defaultValue: String by MsgFieldDelegate { "" } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = kind.hashCode() + result = 31 * result + cardinality.hashCode() + result = 31 * result + number.hashCode() + result = 31 * result + name.hashCode() + result = 31 * result + typeUrl.hashCode() + result = 31 * result + oneofIndex.hashCode() + result = 31 * result + packed.hashCode() + result = 31 * result + options.hashCode() + result = 31 * result + jsonName.hashCode() + result = 31 * result + defaultValue.hashCode() + return result + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as FieldInternal + other.checkRequiredFields() + if (kind != other.kind) return false + if (cardinality != other.cardinality) return false + if (number != other.number) return false + if (name != other.name) return false + if (typeUrl != other.typeUrl) return false + if (oneofIndex != other.oneofIndex) return false + if (packed != other.packed) return false + if (options != other.options) return false + if (jsonName != other.jsonName) return false + if (defaultValue != other.defaultValue) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Field(") + appendLine("${nextIndentString}kind=${kind},") + appendLine("${nextIndentString}cardinality=${cardinality},") + appendLine("${nextIndentString}number=${number},") + appendLine("${nextIndentString}name=${name},") + appendLine("${nextIndentString}typeUrl=${typeUrl},") + appendLine("${nextIndentString}oneofIndex=${oneofIndex},") + appendLine("${nextIndentString}packed=${packed},") + appendLine("${nextIndentString}options=${options},") + appendLine("${nextIndentString}jsonName=${jsonName},") + appendLine("${nextIndentString}defaultValue=${defaultValue},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.Field): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -107,6 +219,57 @@ public class EnumInternal: com.google.protobuf.kotlin.Enum, kotlinx.rpc.protobuf public override var syntax: com.google.protobuf.kotlin.Syntax by MsgFieldDelegate { com.google.protobuf.kotlin.Syntax.SYNTAX_PROTO2 } public override var edition: String by MsgFieldDelegate { "" } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = name.hashCode() + result = 31 * result + enumvalue.hashCode() + result = 31 * result + options.hashCode() + result = 31 * result + if (presenceMask[0]) sourceContext.hashCode() else 0 + result = 31 * result + syntax.hashCode() + result = 31 * result + edition.hashCode() + return result + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as EnumInternal + other.checkRequiredFields() + if (name != other.name) return false + if (enumvalue != other.enumvalue) return false + if (options != other.options) return false + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && sourceContext != other.sourceContext) return false + if (syntax != other.syntax) return false + if (edition != other.edition) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Enum(") + appendLine("${nextIndentString}name=${name},") + appendLine("${nextIndentString}enumvalue=${enumvalue},") + appendLine("${nextIndentString}options=${options},") + if (presenceMask[0]) { + appendLine("${nextIndentString}sourceContext=${sourceContext.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}sourceContext=,") + } + + appendLine("${nextIndentString}syntax=${syntax},") + appendLine("${nextIndentString}edition=${edition},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.Enum): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -143,6 +306,43 @@ public class EnumValueInternal: com.google.protobuf.kotlin.EnumValue, kotlinx.rp public override var number: Int by MsgFieldDelegate { 0 } public override var options: List by MsgFieldDelegate { mutableListOf() } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = name.hashCode() + result = 31 * result + number.hashCode() + result = 31 * result + options.hashCode() + return result + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as EnumValueInternal + other.checkRequiredFields() + if (name != other.name) return false + if (number != other.number) return false + if (options != other.options) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.EnumValue(") + appendLine("${nextIndentString}name=${name},") + appendLine("${nextIndentString}number=${number},") + appendLine("${nextIndentString}options=${options},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.EnumValue): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -182,6 +382,45 @@ public class OptionInternal: com.google.protobuf.kotlin.Option, kotlinx.rpc.prot public override var name: String by MsgFieldDelegate { "" } public override var value: com.google.protobuf.kotlin.Any by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf.kotlin.AnyInternal() } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = name.hashCode() + result = 31 * result + if (presenceMask[0]) value.hashCode() else 0 + return result + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as OptionInternal + other.checkRequiredFields() + if (name != other.name) return false + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && value != other.value) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Option(") + appendLine("${nextIndentString}name=${name},") + if (presenceMask[0]) { + appendLine("${nextIndentString}value=${value.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.Option): kotlinx.rpc.protobuf.input.stream.InputStream { diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Wrappers.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Wrappers.kt index b6b1c48bf..07435b293 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Wrappers.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Wrappers.kt @@ -11,6 +11,36 @@ public class DoubleValueInternal: com.google.protobuf.kotlin.DoubleValue, kotlin public override var value: Double by MsgFieldDelegate { 0.0 } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return value.hashCode() + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as DoubleValueInternal + other.checkRequiredFields() + if (value != other.value) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.DoubleValue(") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.DoubleValue): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -45,6 +75,36 @@ public class FloatValueInternal: com.google.protobuf.kotlin.FloatValue, kotlinx. public override var value: Float by MsgFieldDelegate { 0.0f } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return value.hashCode() + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as FloatValueInternal + other.checkRequiredFields() + if (value != other.value) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.FloatValue(") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.FloatValue): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -79,6 +139,36 @@ public class Int64ValueInternal: com.google.protobuf.kotlin.Int64Value, kotlinx. public override var value: Long by MsgFieldDelegate { 0L } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return value.hashCode() + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as Int64ValueInternal + other.checkRequiredFields() + if (value != other.value) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Int64Value(") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.Int64Value): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -113,6 +203,36 @@ public class UInt64ValueInternal: com.google.protobuf.kotlin.UInt64Value, kotlin public override var value: ULong by MsgFieldDelegate { 0uL } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return value.hashCode() + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as UInt64ValueInternal + other.checkRequiredFields() + if (value != other.value) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.UInt64Value(") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.UInt64Value): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -147,6 +267,36 @@ public class Int32ValueInternal: com.google.protobuf.kotlin.Int32Value, kotlinx. public override var value: Int by MsgFieldDelegate { 0 } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return value.hashCode() + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as Int32ValueInternal + other.checkRequiredFields() + if (value != other.value) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.Int32Value(") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.Int32Value): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -181,6 +331,36 @@ public class UInt32ValueInternal: com.google.protobuf.kotlin.UInt32Value, kotlin public override var value: UInt by MsgFieldDelegate { 0u } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return value.hashCode() + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as UInt32ValueInternal + other.checkRequiredFields() + if (value != other.value) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.UInt32Value(") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.UInt32Value): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -215,6 +395,36 @@ public class BoolValueInternal: com.google.protobuf.kotlin.BoolValue, kotlinx.rp public override var value: Boolean by MsgFieldDelegate { false } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return value.hashCode() + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as BoolValueInternal + other.checkRequiredFields() + if (value != other.value) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.BoolValue(") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.BoolValue): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -249,6 +459,36 @@ public class StringValueInternal: com.google.protobuf.kotlin.StringValue, kotlin public override var value: String by MsgFieldDelegate { "" } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return value.hashCode() + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as StringValueInternal + other.checkRequiredFields() + if (value != other.value) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.StringValue(") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.StringValue): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -283,6 +523,36 @@ public class BytesValueInternal: com.google.protobuf.kotlin.BytesValue, kotlinx. public override var value: ByteArray by MsgFieldDelegate { byteArrayOf() } + public override fun hashCode(): kotlin.Int { + checkRequiredFields() + return value.contentHashCode() + } + + public override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as BytesValueInternal + other.checkRequiredFields() + if (!value.contentEquals(other.value)) return false + return true + } + + public override fun toString(): kotlin.String { + return asString() + } + + public fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.kotlin.BytesValue(") + appendLine("${nextIndentString}value=${value.contentToString()},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi public object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { public override fun encode(value: com.google.protobuf.kotlin.BytesValue): kotlinx.rpc.protobuf.input.stream.InputStream { diff --git a/protobuf/protobuf-core/src/commonMain/kotlin/kotlinx/rpc/protobuf/internal/InternalMessage.kt b/protobuf/protobuf-core/src/commonMain/kotlin/kotlinx/rpc/protobuf/internal/InternalMessage.kt index 4eeffb388..04a9b39b5 100644 --- a/protobuf/protobuf-core/src/commonMain/kotlin/kotlinx/rpc/protobuf/internal/InternalMessage.kt +++ b/protobuf/protobuf-core/src/commonMain/kotlin/kotlinx/rpc/protobuf/internal/InternalMessage.kt @@ -17,7 +17,7 @@ public abstract class InternalMessage(fieldsWithPresence: Int) { } @InternalRpcApi -public class MsgFieldDelegate( +public class MsgFieldDelegate( private val presenceIdx: Int? = null, private val defaultProvider: (() -> T)? = null ) : ReadWriteProperty { @@ -34,6 +34,7 @@ public class MsgFieldDelegate( error("Property ${property.name} not initialized") } } + @Suppress("UNCHECKED_CAST") return value as T } diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf/conformance/Conformance.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf/conformance/Conformance.kt index e9cc2b401..84bc361cc 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf/conformance/Conformance.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf/conformance/Conformance.kt @@ -219,18 +219,18 @@ interface JspbEncodingConfig { * iOS apps, where fork/stdin/stdout are not available. */ sealed class WireFormat(open val number: Int) { - object UNSPECIFIED: WireFormat(number = 0) + data object UNSPECIFIED: WireFormat(number = 0) - object PROTOBUF: WireFormat(number = 1) + data object PROTOBUF: WireFormat(number = 1) - object JSON: WireFormat(number = 2) + data object JSON: WireFormat(number = 2) /** * Only used inside Google. Opensource testees just skip it. */ - object JSPB: WireFormat(number = 3) + data object JSPB: WireFormat(number = 3) - object TEXT_FORMAT: WireFormat(number = 4) + data object TEXT_FORMAT: WireFormat(number = 4) data class UNRECOGNIZED(override val number: Int): WireFormat(number) @@ -240,17 +240,17 @@ sealed class WireFormat(open val number: Int) { } sealed class TestCategory(open val number: Int) { - object UNSPECIFIED_TEST: TestCategory(number = 0) + data object UNSPECIFIED_TEST: TestCategory(number = 0) /** * Test binary wire format. */ - object BINARY_TEST: TestCategory(number = 1) + data object BINARY_TEST: TestCategory(number = 1) /** * Test json wire format. */ - object JSON_TEST: TestCategory(number = 2) + data object JSON_TEST: TestCategory(number = 2) /** * Similar to JSON_TEST. However, during parsing json, testee should ignore @@ -259,19 +259,19 @@ sealed class TestCategory(open val number: Int) { * https://developers.google.com/protocol-buffers/docs/proto3#json_options * for more detail. */ - object JSON_IGNORE_UNKNOWN_PARSING_TEST: TestCategory(number = 3) + data object JSON_IGNORE_UNKNOWN_PARSING_TEST: TestCategory(number = 3) /** * Test jspb wire format. Only used inside Google. Opensource testees just * skip it. */ - object JSPB_TEST: TestCategory(number = 4) + data object JSPB_TEST: TestCategory(number = 4) /** * Test text format. For cpp, java and python, testees can already deal with * this type. Testees of other languages can simply skip it. */ - object TEXT_FORMAT_TEST: TestCategory(number = 5) + data object TEXT_FORMAT_TEST: TestCategory(number = 5) data class UNRECOGNIZED(override val number: Int): TestCategory(number) diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf/conformance/_rpc_internal/Conformance.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf/conformance/_rpc_internal/Conformance.kt index 05f52db45..adfe5f312 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf/conformance/_rpc_internal/Conformance.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf/conformance/_rpc_internal/Conformance.kt @@ -13,6 +13,43 @@ class TestStatusInternal: com.google.protobuf.conformance.TestStatus, kotlinx.rp override var failureMessage: String by MsgFieldDelegate { "" } override var matchedName: String by MsgFieldDelegate { "" } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = name.hashCode() + result = 31 * result + failureMessage.hashCode() + result = 31 * result + matchedName.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as TestStatusInternal + other.checkRequiredFields() + if (name != other.name) return false + if (failureMessage != other.failureMessage) return false + if (matchedName != other.matchedName) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.conformance.TestStatus(") + appendLine("${nextIndentString}name=${name},") + appendLine("${nextIndentString}failureMessage=${failureMessage},") + appendLine("${nextIndentString}matchedName=${matchedName},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf.conformance.TestStatus): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -47,6 +84,36 @@ class FailureSetInternal: com.google.protobuf.conformance.FailureSet, kotlinx.rp override var test: List by MsgFieldDelegate { mutableListOf() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return test.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as FailureSetInternal + other.checkRequiredFields() + if (test != other.test) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.conformance.FailureSet(") + appendLine("${nextIndentString}test=${test},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf.conformance.FailureSet): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -90,6 +157,68 @@ class ConformanceRequestInternal: com.google.protobuf.conformance.ConformanceReq override var printUnknownFields: Boolean by MsgFieldDelegate { false } override var payload: com.google.protobuf.conformance.ConformanceRequest.Payload? = null + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = requestedOutputFormat.hashCode() + result = 31 * result + messageType.hashCode() + result = 31 * result + testCategory.hashCode() + result = 31 * result + if (presenceMask[0]) jspbEncodingOptions.hashCode() else 0 + result = 31 * result + printUnknownFields.hashCode() + result = 31 * result + (payload?.oneOfHashCode() ?: 0) + return result + } + + fun com.google.protobuf.conformance.ConformanceRequest.Payload.oneOfHashCode(): kotlin.Int { + val offset = when (this) { + is com.google.protobuf.conformance.ConformanceRequest.Payload.ProtobufPayload -> 0 + is com.google.protobuf.conformance.ConformanceRequest.Payload.JsonPayload -> 1 + is com.google.protobuf.conformance.ConformanceRequest.Payload.JspbPayload -> 2 + is com.google.protobuf.conformance.ConformanceRequest.Payload.TextPayload -> 3 + } + + return hashCode() + offset + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ConformanceRequestInternal + other.checkRequiredFields() + if (requestedOutputFormat != other.requestedOutputFormat) return false + if (messageType != other.messageType) return false + if (testCategory != other.testCategory) return false + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && jspbEncodingOptions != other.jspbEncodingOptions) return false + if (printUnknownFields != other.printUnknownFields) return false + if (payload != other.payload) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.conformance.ConformanceRequest(") + appendLine("${nextIndentString}requestedOutputFormat=${requestedOutputFormat},") + appendLine("${nextIndentString}messageType=${messageType},") + appendLine("${nextIndentString}testCategory=${testCategory},") + if (presenceMask[0]) { + appendLine("${nextIndentString}jspbEncodingOptions=${jspbEncodingOptions.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}jspbEncodingOptions=,") + } + + appendLine("${nextIndentString}printUnknownFields=${printUnknownFields},") + appendLine("${nextIndentString}payload=${payload},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf.conformance.ConformanceRequest): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -124,6 +253,52 @@ class ConformanceResponseInternal: com.google.protobuf.conformance.ConformanceRe override var result: com.google.protobuf.conformance.ConformanceResponse.Result? = null + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return (result?.oneOfHashCode() ?: 0) + } + + fun com.google.protobuf.conformance.ConformanceResponse.Result.oneOfHashCode(): kotlin.Int { + val offset = when (this) { + is com.google.protobuf.conformance.ConformanceResponse.Result.ParseError -> 0 + is com.google.protobuf.conformance.ConformanceResponse.Result.SerializeError -> 1 + is com.google.protobuf.conformance.ConformanceResponse.Result.TimeoutError -> 2 + is com.google.protobuf.conformance.ConformanceResponse.Result.RuntimeError -> 3 + is com.google.protobuf.conformance.ConformanceResponse.Result.ProtobufPayload -> 4 + is com.google.protobuf.conformance.ConformanceResponse.Result.JsonPayload -> 5 + is com.google.protobuf.conformance.ConformanceResponse.Result.Skipped -> 6 + is com.google.protobuf.conformance.ConformanceResponse.Result.JspbPayload -> 7 + is com.google.protobuf.conformance.ConformanceResponse.Result.TextPayload -> 8 + } + + return hashCode() + offset + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ConformanceResponseInternal + other.checkRequiredFields() + if (result != other.result) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.conformance.ConformanceResponse(") + appendLine("${nextIndentString}result=${result},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf.conformance.ConformanceResponse): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -158,6 +333,36 @@ class JspbEncodingConfigInternal: com.google.protobuf.conformance.JspbEncodingCo override var useJspbArrayAnyFormat: Boolean by MsgFieldDelegate { false } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return useJspbArrayAnyFormat.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as JspbEncodingConfigInternal + other.checkRequiredFields() + if (useJspbArrayAnyFormat != other.useJspbArrayAnyFormat) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf.conformance.JspbEncodingConfig(") + appendLine("${nextIndentString}useJspbArrayAnyFormat=${useJspbArrayAnyFormat},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf.conformance.JspbEncodingConfig): kotlinx.rpc.protobuf.input.stream.InputStream { diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/edition2023/TestMessagesEdition2023.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/edition2023/TestMessagesEdition2023.kt index 4cf77ae78..3161e1b29 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/edition2023/TestMessagesEdition2023.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/edition2023/TestMessagesEdition2023.kt @@ -174,16 +174,16 @@ interface TestAllTypesEdition2023 { } sealed class NestedEnum(open val number: Int) { - object FOO: NestedEnum(number = 0) + data object FOO: NestedEnum(number = 0) - object BAR: NestedEnum(number = 1) + data object BAR: NestedEnum(number = 1) - object BAZ: NestedEnum(number = 2) + data object BAZ: NestedEnum(number = 2) /** * Intentionally negative. */ - object NEG: NestedEnum(number = -1) + data object NEG: NestedEnum(number = -1) data class UNRECOGNIZED(override val number: Int): NestedEnum(number) @@ -210,11 +210,11 @@ interface GroupLikeType { } sealed class ForeignEnumEdition2023(open val number: Int) { - object FOREIGN_FOO: ForeignEnumEdition2023(number = 0) + data object FOREIGN_FOO: ForeignEnumEdition2023(number = 0) - object FOREIGN_BAR: ForeignEnumEdition2023(number = 1) + data object FOREIGN_BAR: ForeignEnumEdition2023(number = 1) - object FOREIGN_BAZ: ForeignEnumEdition2023(number = 2) + data object FOREIGN_BAZ: ForeignEnumEdition2023(number = 2) data class UNRECOGNIZED(override val number: Int): ForeignEnumEdition2023(number) diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/edition2023/_rpc_internal/TestMessagesEdition2023.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/edition2023/_rpc_internal/TestMessagesEdition2023.kt index 953cce500..61bbd3daf 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/edition2023/_rpc_internal/TestMessagesEdition2023.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/edition2023/_rpc_internal/TestMessagesEdition2023.kt @@ -13,7 +13,42 @@ class ComplexMessageInternal: com.google.protobuf_test_messages.edition2023.Comp @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var d: Int? = null + override var d: Int? by MsgFieldDelegate(PresenceIndices.d) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) (d?.hashCode() ?: 0) else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ComplexMessageInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && d != other.d) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.ComplexMessage(") + if (presenceMask[0]) { + appendLine("${nextIndentString}d=${d},") + } else { + appendLine("${nextIndentString}d=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { @@ -74,27 +109,27 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var optionalInt32: Int? = null - override var optionalInt64: Long? = null - override var optionalUint32: UInt? = null - override var optionalUint64: ULong? = null - override var optionalSint32: Int? = null - override var optionalSint64: Long? = null - override var optionalFixed32: UInt? = null - override var optionalFixed64: ULong? = null - override var optionalSfixed32: Int? = null - override var optionalSfixed64: Long? = null - override var optionalFloat: Float? = null - override var optionalDouble: Double? = null - override var optionalBool: Boolean? = null - override var optionalString: String? = null - override var optionalBytes: ByteArray? = null + override var optionalInt32: Int? by MsgFieldDelegate(PresenceIndices.optionalInt32) { null } + override var optionalInt64: Long? by MsgFieldDelegate(PresenceIndices.optionalInt64) { null } + override var optionalUint32: UInt? by MsgFieldDelegate(PresenceIndices.optionalUint32) { null } + override var optionalUint64: ULong? by MsgFieldDelegate(PresenceIndices.optionalUint64) { null } + override var optionalSint32: Int? by MsgFieldDelegate(PresenceIndices.optionalSint32) { null } + override var optionalSint64: Long? by MsgFieldDelegate(PresenceIndices.optionalSint64) { null } + override var optionalFixed32: UInt? by MsgFieldDelegate(PresenceIndices.optionalFixed32) { null } + override var optionalFixed64: ULong? by MsgFieldDelegate(PresenceIndices.optionalFixed64) { null } + override var optionalSfixed32: Int? by MsgFieldDelegate(PresenceIndices.optionalSfixed32) { null } + override var optionalSfixed64: Long? by MsgFieldDelegate(PresenceIndices.optionalSfixed64) { null } + override var optionalFloat: Float? by MsgFieldDelegate(PresenceIndices.optionalFloat) { null } + override var optionalDouble: Double? by MsgFieldDelegate(PresenceIndices.optionalDouble) { null } + override var optionalBool: Boolean? by MsgFieldDelegate(PresenceIndices.optionalBool) { null } + override var optionalString: String? by MsgFieldDelegate(PresenceIndices.optionalString) { null } + override var optionalBytes: ByteArray? by MsgFieldDelegate(PresenceIndices.optionalBytes) { null } override var optionalNestedMessage: com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.NestedMessage by MsgFieldDelegate(PresenceIndices.optionalNestedMessage) { com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023Internal.NestedMessageInternal() } override var optionalForeignMessage: com.google.protobuf_test_messages.edition2023.ForeignMessageEdition2023 by MsgFieldDelegate(PresenceIndices.optionalForeignMessage) { com.google.protobuf_test_messages.edition2023.ForeignMessageEdition2023Internal() } - override var optionalNestedEnum: com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.NestedEnum? = null - override var optionalForeignEnum: com.google.protobuf_test_messages.edition2023.ForeignEnumEdition2023? = null - override var optionalStringPiece: String? = null - override var optionalCord: String? = null + override var optionalNestedEnum: com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.NestedEnum? by MsgFieldDelegate(PresenceIndices.optionalNestedEnum) { null } + override var optionalForeignEnum: com.google.protobuf_test_messages.edition2023.ForeignEnumEdition2023? by MsgFieldDelegate(PresenceIndices.optionalForeignEnum) { null } + override var optionalStringPiece: String? by MsgFieldDelegate(PresenceIndices.optionalStringPiece) { null } + override var optionalCord: String? by MsgFieldDelegate(PresenceIndices.optionalCord) { null } override var recursiveMessage: com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023 by MsgFieldDelegate(PresenceIndices.recursiveMessage) { com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023Internal() } override var repeatedInt32: List by MsgFieldDelegate { mutableListOf() } override var repeatedInt64: List by MsgFieldDelegate { mutableListOf() } @@ -168,6 +203,449 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition override var delimitedField: com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.GroupLikeType by MsgFieldDelegate(PresenceIndices.delimitedField) { com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023Internal.GroupLikeTypeInternal() } override var oneofField: com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.OneofField? = null + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (optionalInt32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) (optionalInt64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[2]) (optionalUint32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[3]) (optionalUint64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[4]) (optionalSint32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[5]) (optionalSint64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[6]) (optionalFixed32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[7]) (optionalFixed64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[8]) (optionalSfixed32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[9]) (optionalSfixed64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[10]) (optionalFloat?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[11]) (optionalDouble?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[12]) (optionalBool?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[13]) (optionalString?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[14]) (optionalBytes?.contentHashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[15]) optionalNestedMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[16]) optionalForeignMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[17]) (optionalNestedEnum?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[18]) (optionalForeignEnum?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[19]) (optionalStringPiece?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[20]) (optionalCord?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[21]) recursiveMessage.hashCode() else 0 + result = 31 * result + repeatedInt32.hashCode() + result = 31 * result + repeatedInt64.hashCode() + result = 31 * result + repeatedUint32.hashCode() + result = 31 * result + repeatedUint64.hashCode() + result = 31 * result + repeatedSint32.hashCode() + result = 31 * result + repeatedSint64.hashCode() + result = 31 * result + repeatedFixed32.hashCode() + result = 31 * result + repeatedFixed64.hashCode() + result = 31 * result + repeatedSfixed32.hashCode() + result = 31 * result + repeatedSfixed64.hashCode() + result = 31 * result + repeatedFloat.hashCode() + result = 31 * result + repeatedDouble.hashCode() + result = 31 * result + repeatedBool.hashCode() + result = 31 * result + repeatedString.hashCode() + result = 31 * result + repeatedBytes.hashCode() + result = 31 * result + repeatedNestedMessage.hashCode() + result = 31 * result + repeatedForeignMessage.hashCode() + result = 31 * result + repeatedNestedEnum.hashCode() + result = 31 * result + repeatedForeignEnum.hashCode() + result = 31 * result + repeatedStringPiece.hashCode() + result = 31 * result + repeatedCord.hashCode() + result = 31 * result + packedInt32.hashCode() + result = 31 * result + packedInt64.hashCode() + result = 31 * result + packedUint32.hashCode() + result = 31 * result + packedUint64.hashCode() + result = 31 * result + packedSint32.hashCode() + result = 31 * result + packedSint64.hashCode() + result = 31 * result + packedFixed32.hashCode() + result = 31 * result + packedFixed64.hashCode() + result = 31 * result + packedSfixed32.hashCode() + result = 31 * result + packedSfixed64.hashCode() + result = 31 * result + packedFloat.hashCode() + result = 31 * result + packedDouble.hashCode() + result = 31 * result + packedBool.hashCode() + result = 31 * result + packedNestedEnum.hashCode() + result = 31 * result + unpackedInt32.hashCode() + result = 31 * result + unpackedInt64.hashCode() + result = 31 * result + unpackedUint32.hashCode() + result = 31 * result + unpackedUint64.hashCode() + result = 31 * result + unpackedSint32.hashCode() + result = 31 * result + unpackedSint64.hashCode() + result = 31 * result + unpackedFixed32.hashCode() + result = 31 * result + unpackedFixed64.hashCode() + result = 31 * result + unpackedSfixed32.hashCode() + result = 31 * result + unpackedSfixed64.hashCode() + result = 31 * result + unpackedFloat.hashCode() + result = 31 * result + unpackedDouble.hashCode() + result = 31 * result + unpackedBool.hashCode() + result = 31 * result + unpackedNestedEnum.hashCode() + result = 31 * result + mapInt32Int32.hashCode() + result = 31 * result + mapInt64Int64.hashCode() + result = 31 * result + mapUint32Uint32.hashCode() + result = 31 * result + mapUint64Uint64.hashCode() + result = 31 * result + mapSint32Sint32.hashCode() + result = 31 * result + mapSint64Sint64.hashCode() + result = 31 * result + mapFixed32Fixed32.hashCode() + result = 31 * result + mapFixed64Fixed64.hashCode() + result = 31 * result + mapSfixed32Sfixed32.hashCode() + result = 31 * result + mapSfixed64Sfixed64.hashCode() + result = 31 * result + mapInt32Float.hashCode() + result = 31 * result + mapInt32Double.hashCode() + result = 31 * result + mapBoolBool.hashCode() + result = 31 * result + mapStringString.hashCode() + result = 31 * result + mapStringBytes.hashCode() + result = 31 * result + mapStringNestedMessage.hashCode() + result = 31 * result + mapStringForeignMessage.hashCode() + result = 31 * result + mapStringNestedEnum.hashCode() + result = 31 * result + mapStringForeignEnum.hashCode() + result = 31 * result + if (presenceMask[22]) groupliketype.hashCode() else 0 + result = 31 * result + if (presenceMask[23]) delimitedField.hashCode() else 0 + result = 31 * result + (oneofField?.oneOfHashCode() ?: 0) + return result + } + + fun com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.OneofField.oneOfHashCode(): kotlin.Int { + val offset = when (this) { + is com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.OneofField.OneofUint32 -> 0 + is com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.OneofField.OneofNestedMessage -> 1 + is com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.OneofField.OneofString -> 2 + is com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.OneofField.OneofBytes -> 3 + is com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.OneofField.OneofBool -> 4 + is com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.OneofField.OneofUint64 -> 5 + is com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.OneofField.OneofFloat -> 6 + is com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.OneofField.OneofDouble -> 7 + is com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.OneofField.OneofEnum -> 8 + } + + return hashCode() + offset + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as TestAllTypesEdition2023Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && optionalInt32 != other.optionalInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && optionalInt64 != other.optionalInt64) return false + if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && optionalUint32 != other.optionalUint32) return false + if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && optionalUint64 != other.optionalUint64) return false + if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && optionalSint32 != other.optionalSint32) return false + if (presenceMask[5] != other.presenceMask[5] || presenceMask[5] && optionalSint64 != other.optionalSint64) return false + if (presenceMask[6] != other.presenceMask[6] || presenceMask[6] && optionalFixed32 != other.optionalFixed32) return false + if (presenceMask[7] != other.presenceMask[7] || presenceMask[7] && optionalFixed64 != other.optionalFixed64) return false + if (presenceMask[8] != other.presenceMask[8] || presenceMask[8] && optionalSfixed32 != other.optionalSfixed32) return false + if (presenceMask[9] != other.presenceMask[9] || presenceMask[9] && optionalSfixed64 != other.optionalSfixed64) return false + if (presenceMask[10] != other.presenceMask[10] || presenceMask[10] && optionalFloat != other.optionalFloat) return false + if (presenceMask[11] != other.presenceMask[11] || presenceMask[11] && optionalDouble != other.optionalDouble) return false + if (presenceMask[12] != other.presenceMask[12] || presenceMask[12] && optionalBool != other.optionalBool) return false + if (presenceMask[13] != other.presenceMask[13] || presenceMask[13] && optionalString != other.optionalString) return false + if (presenceMask[14] != other.presenceMask[14] || presenceMask[14] && ((optionalBytes != null && (other.optionalBytes == null || !optionalBytes!!.contentEquals(other.optionalBytes!!))) || other.optionalBytes != null)) return false + if (presenceMask[15] != other.presenceMask[15] || presenceMask[15] && optionalNestedMessage != other.optionalNestedMessage) return false + if (presenceMask[16] != other.presenceMask[16] || presenceMask[16] && optionalForeignMessage != other.optionalForeignMessage) return false + if (presenceMask[17] != other.presenceMask[17] || presenceMask[17] && optionalNestedEnum != other.optionalNestedEnum) return false + if (presenceMask[18] != other.presenceMask[18] || presenceMask[18] && optionalForeignEnum != other.optionalForeignEnum) return false + if (presenceMask[19] != other.presenceMask[19] || presenceMask[19] && optionalStringPiece != other.optionalStringPiece) return false + if (presenceMask[20] != other.presenceMask[20] || presenceMask[20] && optionalCord != other.optionalCord) return false + if (presenceMask[21] != other.presenceMask[21] || presenceMask[21] && recursiveMessage != other.recursiveMessage) return false + if (repeatedInt32 != other.repeatedInt32) return false + if (repeatedInt64 != other.repeatedInt64) return false + if (repeatedUint32 != other.repeatedUint32) return false + if (repeatedUint64 != other.repeatedUint64) return false + if (repeatedSint32 != other.repeatedSint32) return false + if (repeatedSint64 != other.repeatedSint64) return false + if (repeatedFixed32 != other.repeatedFixed32) return false + if (repeatedFixed64 != other.repeatedFixed64) return false + if (repeatedSfixed32 != other.repeatedSfixed32) return false + if (repeatedSfixed64 != other.repeatedSfixed64) return false + if (repeatedFloat != other.repeatedFloat) return false + if (repeatedDouble != other.repeatedDouble) return false + if (repeatedBool != other.repeatedBool) return false + if (repeatedString != other.repeatedString) return false + if (repeatedBytes != other.repeatedBytes) return false + if (repeatedNestedMessage != other.repeatedNestedMessage) return false + if (repeatedForeignMessage != other.repeatedForeignMessage) return false + if (repeatedNestedEnum != other.repeatedNestedEnum) return false + if (repeatedForeignEnum != other.repeatedForeignEnum) return false + if (repeatedStringPiece != other.repeatedStringPiece) return false + if (repeatedCord != other.repeatedCord) return false + if (packedInt32 != other.packedInt32) return false + if (packedInt64 != other.packedInt64) return false + if (packedUint32 != other.packedUint32) return false + if (packedUint64 != other.packedUint64) return false + if (packedSint32 != other.packedSint32) return false + if (packedSint64 != other.packedSint64) return false + if (packedFixed32 != other.packedFixed32) return false + if (packedFixed64 != other.packedFixed64) return false + if (packedSfixed32 != other.packedSfixed32) return false + if (packedSfixed64 != other.packedSfixed64) return false + if (packedFloat != other.packedFloat) return false + if (packedDouble != other.packedDouble) return false + if (packedBool != other.packedBool) return false + if (packedNestedEnum != other.packedNestedEnum) return false + if (unpackedInt32 != other.unpackedInt32) return false + if (unpackedInt64 != other.unpackedInt64) return false + if (unpackedUint32 != other.unpackedUint32) return false + if (unpackedUint64 != other.unpackedUint64) return false + if (unpackedSint32 != other.unpackedSint32) return false + if (unpackedSint64 != other.unpackedSint64) return false + if (unpackedFixed32 != other.unpackedFixed32) return false + if (unpackedFixed64 != other.unpackedFixed64) return false + if (unpackedSfixed32 != other.unpackedSfixed32) return false + if (unpackedSfixed64 != other.unpackedSfixed64) return false + if (unpackedFloat != other.unpackedFloat) return false + if (unpackedDouble != other.unpackedDouble) return false + if (unpackedBool != other.unpackedBool) return false + if (unpackedNestedEnum != other.unpackedNestedEnum) return false + if (mapInt32Int32 != other.mapInt32Int32) return false + if (mapInt64Int64 != other.mapInt64Int64) return false + if (mapUint32Uint32 != other.mapUint32Uint32) return false + if (mapUint64Uint64 != other.mapUint64Uint64) return false + if (mapSint32Sint32 != other.mapSint32Sint32) return false + if (mapSint64Sint64 != other.mapSint64Sint64) return false + if (mapFixed32Fixed32 != other.mapFixed32Fixed32) return false + if (mapFixed64Fixed64 != other.mapFixed64Fixed64) return false + if (mapSfixed32Sfixed32 != other.mapSfixed32Sfixed32) return false + if (mapSfixed64Sfixed64 != other.mapSfixed64Sfixed64) return false + if (mapInt32Float != other.mapInt32Float) return false + if (mapInt32Double != other.mapInt32Double) return false + if (mapBoolBool != other.mapBoolBool) return false + if (mapStringString != other.mapStringString) return false + if (mapStringBytes != other.mapStringBytes) return false + if (mapStringNestedMessage != other.mapStringNestedMessage) return false + if (mapStringForeignMessage != other.mapStringForeignMessage) return false + if (mapStringNestedEnum != other.mapStringNestedEnum) return false + if (mapStringForeignEnum != other.mapStringForeignEnum) return false + if (presenceMask[22] != other.presenceMask[22] || presenceMask[22] && groupliketype != other.groupliketype) return false + if (presenceMask[23] != other.presenceMask[23] || presenceMask[23] && delimitedField != other.delimitedField) return false + if (oneofField != other.oneofField) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023(") + if (presenceMask[0]) { + appendLine("${nextIndentString}optionalInt32=${optionalInt32},") + } else { + appendLine("${nextIndentString}optionalInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}optionalInt64=${optionalInt64},") + } else { + appendLine("${nextIndentString}optionalInt64=,") + } + + if (presenceMask[2]) { + appendLine("${nextIndentString}optionalUint32=${optionalUint32},") + } else { + appendLine("${nextIndentString}optionalUint32=,") + } + + if (presenceMask[3]) { + appendLine("${nextIndentString}optionalUint64=${optionalUint64},") + } else { + appendLine("${nextIndentString}optionalUint64=,") + } + + if (presenceMask[4]) { + appendLine("${nextIndentString}optionalSint32=${optionalSint32},") + } else { + appendLine("${nextIndentString}optionalSint32=,") + } + + if (presenceMask[5]) { + appendLine("${nextIndentString}optionalSint64=${optionalSint64},") + } else { + appendLine("${nextIndentString}optionalSint64=,") + } + + if (presenceMask[6]) { + appendLine("${nextIndentString}optionalFixed32=${optionalFixed32},") + } else { + appendLine("${nextIndentString}optionalFixed32=,") + } + + if (presenceMask[7]) { + appendLine("${nextIndentString}optionalFixed64=${optionalFixed64},") + } else { + appendLine("${nextIndentString}optionalFixed64=,") + } + + if (presenceMask[8]) { + appendLine("${nextIndentString}optionalSfixed32=${optionalSfixed32},") + } else { + appendLine("${nextIndentString}optionalSfixed32=,") + } + + if (presenceMask[9]) { + appendLine("${nextIndentString}optionalSfixed64=${optionalSfixed64},") + } else { + appendLine("${nextIndentString}optionalSfixed64=,") + } + + if (presenceMask[10]) { + appendLine("${nextIndentString}optionalFloat=${optionalFloat},") + } else { + appendLine("${nextIndentString}optionalFloat=,") + } + + if (presenceMask[11]) { + appendLine("${nextIndentString}optionalDouble=${optionalDouble},") + } else { + appendLine("${nextIndentString}optionalDouble=,") + } + + if (presenceMask[12]) { + appendLine("${nextIndentString}optionalBool=${optionalBool},") + } else { + appendLine("${nextIndentString}optionalBool=,") + } + + if (presenceMask[13]) { + appendLine("${nextIndentString}optionalString=${optionalString},") + } else { + appendLine("${nextIndentString}optionalString=,") + } + + if (presenceMask[14]) { + appendLine("${nextIndentString}optionalBytes=${optionalBytes.contentToString()},") + } else { + appendLine("${nextIndentString}optionalBytes=,") + } + + if (presenceMask[15]) { + appendLine("${nextIndentString}optionalNestedMessage=${optionalNestedMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalNestedMessage=,") + } + + if (presenceMask[16]) { + appendLine("${nextIndentString}optionalForeignMessage=${optionalForeignMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalForeignMessage=,") + } + + if (presenceMask[17]) { + appendLine("${nextIndentString}optionalNestedEnum=${optionalNestedEnum},") + } else { + appendLine("${nextIndentString}optionalNestedEnum=,") + } + + if (presenceMask[18]) { + appendLine("${nextIndentString}optionalForeignEnum=${optionalForeignEnum},") + } else { + appendLine("${nextIndentString}optionalForeignEnum=,") + } + + if (presenceMask[19]) { + appendLine("${nextIndentString}optionalStringPiece=${optionalStringPiece},") + } else { + appendLine("${nextIndentString}optionalStringPiece=,") + } + + if (presenceMask[20]) { + appendLine("${nextIndentString}optionalCord=${optionalCord},") + } else { + appendLine("${nextIndentString}optionalCord=,") + } + + if (presenceMask[21]) { + appendLine("${nextIndentString}recursiveMessage=${recursiveMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}recursiveMessage=,") + } + + appendLine("${nextIndentString}repeatedInt32=${repeatedInt32},") + appendLine("${nextIndentString}repeatedInt64=${repeatedInt64},") + appendLine("${nextIndentString}repeatedUint32=${repeatedUint32},") + appendLine("${nextIndentString}repeatedUint64=${repeatedUint64},") + appendLine("${nextIndentString}repeatedSint32=${repeatedSint32},") + appendLine("${nextIndentString}repeatedSint64=${repeatedSint64},") + appendLine("${nextIndentString}repeatedFixed32=${repeatedFixed32},") + appendLine("${nextIndentString}repeatedFixed64=${repeatedFixed64},") + appendLine("${nextIndentString}repeatedSfixed32=${repeatedSfixed32},") + appendLine("${nextIndentString}repeatedSfixed64=${repeatedSfixed64},") + appendLine("${nextIndentString}repeatedFloat=${repeatedFloat},") + appendLine("${nextIndentString}repeatedDouble=${repeatedDouble},") + appendLine("${nextIndentString}repeatedBool=${repeatedBool},") + appendLine("${nextIndentString}repeatedString=${repeatedString},") + appendLine("${nextIndentString}repeatedBytes=${repeatedBytes},") + appendLine("${nextIndentString}repeatedNestedMessage=${repeatedNestedMessage},") + appendLine("${nextIndentString}repeatedForeignMessage=${repeatedForeignMessage},") + appendLine("${nextIndentString}repeatedNestedEnum=${repeatedNestedEnum},") + appendLine("${nextIndentString}repeatedForeignEnum=${repeatedForeignEnum},") + appendLine("${nextIndentString}repeatedStringPiece=${repeatedStringPiece},") + appendLine("${nextIndentString}repeatedCord=${repeatedCord},") + appendLine("${nextIndentString}packedInt32=${packedInt32},") + appendLine("${nextIndentString}packedInt64=${packedInt64},") + appendLine("${nextIndentString}packedUint32=${packedUint32},") + appendLine("${nextIndentString}packedUint64=${packedUint64},") + appendLine("${nextIndentString}packedSint32=${packedSint32},") + appendLine("${nextIndentString}packedSint64=${packedSint64},") + appendLine("${nextIndentString}packedFixed32=${packedFixed32},") + appendLine("${nextIndentString}packedFixed64=${packedFixed64},") + appendLine("${nextIndentString}packedSfixed32=${packedSfixed32},") + appendLine("${nextIndentString}packedSfixed64=${packedSfixed64},") + appendLine("${nextIndentString}packedFloat=${packedFloat},") + appendLine("${nextIndentString}packedDouble=${packedDouble},") + appendLine("${nextIndentString}packedBool=${packedBool},") + appendLine("${nextIndentString}packedNestedEnum=${packedNestedEnum},") + appendLine("${nextIndentString}unpackedInt32=${unpackedInt32},") + appendLine("${nextIndentString}unpackedInt64=${unpackedInt64},") + appendLine("${nextIndentString}unpackedUint32=${unpackedUint32},") + appendLine("${nextIndentString}unpackedUint64=${unpackedUint64},") + appendLine("${nextIndentString}unpackedSint32=${unpackedSint32},") + appendLine("${nextIndentString}unpackedSint64=${unpackedSint64},") + appendLine("${nextIndentString}unpackedFixed32=${unpackedFixed32},") + appendLine("${nextIndentString}unpackedFixed64=${unpackedFixed64},") + appendLine("${nextIndentString}unpackedSfixed32=${unpackedSfixed32},") + appendLine("${nextIndentString}unpackedSfixed64=${unpackedSfixed64},") + appendLine("${nextIndentString}unpackedFloat=${unpackedFloat},") + appendLine("${nextIndentString}unpackedDouble=${unpackedDouble},") + appendLine("${nextIndentString}unpackedBool=${unpackedBool},") + appendLine("${nextIndentString}unpackedNestedEnum=${unpackedNestedEnum},") + appendLine("${nextIndentString}mapInt32Int32=${mapInt32Int32},") + appendLine("${nextIndentString}mapInt64Int64=${mapInt64Int64},") + appendLine("${nextIndentString}mapUint32Uint32=${mapUint32Uint32},") + appendLine("${nextIndentString}mapUint64Uint64=${mapUint64Uint64},") + appendLine("${nextIndentString}mapSint32Sint32=${mapSint32Sint32},") + appendLine("${nextIndentString}mapSint64Sint64=${mapSint64Sint64},") + appendLine("${nextIndentString}mapFixed32Fixed32=${mapFixed32Fixed32},") + appendLine("${nextIndentString}mapFixed64Fixed64=${mapFixed64Fixed64},") + appendLine("${nextIndentString}mapSfixed32Sfixed32=${mapSfixed32Sfixed32},") + appendLine("${nextIndentString}mapSfixed64Sfixed64=${mapSfixed64Sfixed64},") + appendLine("${nextIndentString}mapInt32Float=${mapInt32Float},") + appendLine("${nextIndentString}mapInt32Double=${mapInt32Double},") + appendLine("${nextIndentString}mapBoolBool=${mapBoolBool},") + appendLine("${nextIndentString}mapStringString=${mapStringString},") + appendLine("${nextIndentString}mapStringBytes=${mapStringBytes},") + appendLine("${nextIndentString}mapStringNestedMessage=${mapStringNestedMessage},") + appendLine("${nextIndentString}mapStringForeignMessage=${mapStringForeignMessage},") + appendLine("${nextIndentString}mapStringNestedEnum=${mapStringNestedEnum},") + appendLine("${nextIndentString}mapStringForeignEnum=${mapStringForeignEnum},") + if (presenceMask[22]) { + appendLine("${nextIndentString}groupliketype=${groupliketype.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}groupliketype=,") + } + + if (presenceMask[23]) { + appendLine("${nextIndentString}delimitedField=${delimitedField.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}delimitedField=,") + } + + appendLine("${nextIndentString}oneofField=${oneofField},") + append("${indentString})") + } + } + class NestedMessageInternal: com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.NestedMessage, kotlinx.rpc.protobuf.internal.InternalMessage(fieldsWithPresence = 2) { private object PresenceIndices { const val a: Int = 0 @@ -177,9 +655,53 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var a: Int? = null + override var a: Int? by MsgFieldDelegate(PresenceIndices.a) { null } override var corecursive: com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023 by MsgFieldDelegate(PresenceIndices.corecursive) { com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023Internal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (a?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) corecursive.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as NestedMessageInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && a != other.a) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && corecursive != other.corecursive) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.NestedMessage(") + if (presenceMask[0]) { + appendLine("${nextIndentString}a=${a},") + } else { + appendLine("${nextIndentString}a=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}corecursive=${corecursive.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}corecursive=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.NestedMessage): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -220,6 +742,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Int by MsgFieldDelegate(PresenceIndices.value) { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32Int32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapInt32Int32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -236,6 +802,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: Long by MsgFieldDelegate(PresenceIndices.key) { 0L } var value: Long by MsgFieldDelegate(PresenceIndices.value) { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt64Int64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapInt64Int64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -252,6 +862,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: UInt by MsgFieldDelegate(PresenceIndices.key) { 0u } var value: UInt by MsgFieldDelegate(PresenceIndices.value) { 0u } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapUint32Uint32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapUint32Uint32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -268,6 +922,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: ULong by MsgFieldDelegate(PresenceIndices.key) { 0uL } var value: ULong by MsgFieldDelegate(PresenceIndices.value) { 0uL } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapUint64Uint64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapUint64Uint64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -284,6 +982,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Int by MsgFieldDelegate(PresenceIndices.value) { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSint32Sint32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapSint32Sint32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -300,6 +1042,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: Long by MsgFieldDelegate(PresenceIndices.key) { 0L } var value: Long by MsgFieldDelegate(PresenceIndices.value) { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSint64Sint64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapSint64Sint64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -316,6 +1102,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: UInt by MsgFieldDelegate(PresenceIndices.key) { 0u } var value: UInt by MsgFieldDelegate(PresenceIndices.value) { 0u } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapFixed32Fixed32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapFixed32Fixed32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -332,6 +1162,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: ULong by MsgFieldDelegate(PresenceIndices.key) { 0uL } var value: ULong by MsgFieldDelegate(PresenceIndices.value) { 0uL } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapFixed64Fixed64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapFixed64Fixed64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -348,6 +1222,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Int by MsgFieldDelegate(PresenceIndices.value) { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSfixed32Sfixed32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapSfixed32Sfixed32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -364,6 +1282,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: Long by MsgFieldDelegate(PresenceIndices.key) { 0L } var value: Long by MsgFieldDelegate(PresenceIndices.value) { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSfixed64Sfixed64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapSfixed64Sfixed64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -380,6 +1342,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Float by MsgFieldDelegate(PresenceIndices.value) { 0.0f } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32FloatEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapInt32FloatEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -396,6 +1402,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Double by MsgFieldDelegate(PresenceIndices.value) { 0.0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32DoubleEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapInt32DoubleEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -412,6 +1462,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: Boolean by MsgFieldDelegate(PresenceIndices.key) { false } var value: Boolean by MsgFieldDelegate(PresenceIndices.value) { false } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapBoolBoolEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapBoolBoolEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -428,6 +1522,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: String by MsgFieldDelegate(PresenceIndices.value) { "" } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringStringEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapStringStringEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -444,6 +1582,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: ByteArray by MsgFieldDelegate(PresenceIndices.value) { byteArrayOf() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.contentHashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringBytesEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && !value.contentEquals(other.value)) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapStringBytesEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value.contentToString()},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -460,6 +1642,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.NestedMessage by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023Internal.NestedMessageInternal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringNestedMessageEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapStringNestedMessageEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -476,6 +1702,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: com.google.protobuf_test_messages.edition2023.ForeignMessageEdition2023 by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.edition2023.ForeignMessageEdition2023Internal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringForeignMessageEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapStringForeignMessageEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -492,6 +1762,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.NestedEnum by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.NestedEnum.FOO } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringNestedEnumEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapStringNestedEnumEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -508,6 +1822,50 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: com.google.protobuf_test_messages.edition2023.ForeignEnumEdition2023 by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.edition2023.ForeignEnumEdition2023.FOREIGN_FOO } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringForeignEnumEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.MapStringForeignEnumEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -521,8 +1879,52 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var groupInt32: Int? = null - override var groupUint32: UInt? = null + override var groupInt32: Int? by MsgFieldDelegate(PresenceIndices.groupInt32) { null } + override var groupUint32: UInt? by MsgFieldDelegate(PresenceIndices.groupUint32) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (groupInt32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) (groupUint32?.hashCode() ?: 0) else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as GroupLikeTypeInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.TestAllTypesEdition2023.GroupLikeType(") + if (presenceMask[0]) { + appendLine("${nextIndentString}groupInt32=${groupInt32},") + } else { + appendLine("${nextIndentString}groupInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}groupUint32=${groupUint32},") + } else { + appendLine("${nextIndentString}groupUint32=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi companion object @@ -564,7 +1966,42 @@ class ForeignMessageEdition2023Internal: com.google.protobuf_test_messages.editi @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var c: Int? = null + override var c: Int? by MsgFieldDelegate(PresenceIndices.c) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) (c?.hashCode() ?: 0) else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ForeignMessageEdition2023Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && c != other.c) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.ForeignMessageEdition2023(") + if (presenceMask[0]) { + appendLine("${nextIndentString}c=${c},") + } else { + appendLine("${nextIndentString}c=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { @@ -602,7 +2039,42 @@ class GroupLikeTypeInternal: com.google.protobuf_test_messages.edition2023.Group @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var c: Int? = null + override var c: Int? by MsgFieldDelegate(PresenceIndices.c) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) (c?.hashCode() ?: 0) else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as GroupLikeTypeInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && c != other.c) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.edition2023.GroupLikeType(") + if (presenceMask[0]) { + appendLine("${nextIndentString}c=${c},") + } else { + appendLine("${nextIndentString}c=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto2/TestMessagesProto2Editions.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto2/TestMessagesProto2Editions.kt index f6e640aea..684091223 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto2/TestMessagesProto2Editions.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto2/TestMessagesProto2Editions.kt @@ -263,16 +263,16 @@ interface TestAllTypesProto2 { } sealed class NestedEnum(open val number: Int) { - object FOO: NestedEnum(number = 0) + data object FOO: NestedEnum(number = 0) - object BAR: NestedEnum(number = 1) + data object BAR: NestedEnum(number = 1) - object BAZ: NestedEnum(number = 2) + data object BAZ: NestedEnum(number = 2) /** * Intentionally negative. */ - object NEG: NestedEnum(number = -1) + data object NEG: NestedEnum(number = -1) data class UNRECOGNIZED(override val number: Int): NestedEnum(number) @@ -325,9 +325,9 @@ interface NullHypothesisProto2 { @kotlinx.rpc.grpc.codec.WithCodec(com.google.protobuf_test_messages.editions.proto2.EnumOnlyProto2Internal.CODEC::class) interface EnumOnlyProto2 { sealed class Bool(open val number: Int) { - object kFalse: Bool(number = 0) + data object kFalse: Bool(number = 0) - object kTrue: Bool(number = 1) + data object kTrue: Bool(number = 1) data class UNRECOGNIZED(override val number: Int): Bool(number) @@ -445,16 +445,16 @@ interface TestAllRequiredTypesProto2 { } sealed class NestedEnum(open val number: Int) { - object FOO: NestedEnum(number = 0) + data object FOO: NestedEnum(number = 0) - object BAR: NestedEnum(number = 1) + data object BAR: NestedEnum(number = 1) - object BAZ: NestedEnum(number = 2) + data object BAZ: NestedEnum(number = 2) /** * Intentionally negative. */ - object NEG: NestedEnum(number = -1) + data object NEG: NestedEnum(number = -1) data class UNRECOGNIZED(override val number: Int): NestedEnum(number) @@ -526,11 +526,11 @@ interface TestLargeOneof { } sealed class ForeignEnumProto2(open val number: Int) { - object FOREIGN_FOO: ForeignEnumProto2(number = 0) + data object FOREIGN_FOO: ForeignEnumProto2(number = 0) - object FOREIGN_BAR: ForeignEnumProto2(number = 1) + data object FOREIGN_BAR: ForeignEnumProto2(number = 1) - object FOREIGN_BAZ: ForeignEnumProto2(number = 2) + data object FOREIGN_BAZ: ForeignEnumProto2(number = 2) data class UNRECOGNIZED(override val number: Int): ForeignEnumProto2(number) diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto2/_rpc_internal/TestMessagesProto2Editions.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto2/_rpc_internal/TestMessagesProto2Editions.kt index 4c6d138d2..f1b060461 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto2/_rpc_internal/TestMessagesProto2Editions.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto2/_rpc_internal/TestMessagesProto2Editions.kt @@ -74,27 +74,27 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var optionalInt32: Int? = null - override var optionalInt64: Long? = null - override var optionalUint32: UInt? = null - override var optionalUint64: ULong? = null - override var optionalSint32: Int? = null - override var optionalSint64: Long? = null - override var optionalFixed32: UInt? = null - override var optionalFixed64: ULong? = null - override var optionalSfixed32: Int? = null - override var optionalSfixed64: Long? = null - override var optionalFloat: Float? = null - override var optionalDouble: Double? = null - override var optionalBool: Boolean? = null - override var optionalString: String? = null - override var optionalBytes: ByteArray? = null + override var optionalInt32: Int? by MsgFieldDelegate(PresenceIndices.optionalInt32) { null } + override var optionalInt64: Long? by MsgFieldDelegate(PresenceIndices.optionalInt64) { null } + override var optionalUint32: UInt? by MsgFieldDelegate(PresenceIndices.optionalUint32) { null } + override var optionalUint64: ULong? by MsgFieldDelegate(PresenceIndices.optionalUint64) { null } + override var optionalSint32: Int? by MsgFieldDelegate(PresenceIndices.optionalSint32) { null } + override var optionalSint64: Long? by MsgFieldDelegate(PresenceIndices.optionalSint64) { null } + override var optionalFixed32: UInt? by MsgFieldDelegate(PresenceIndices.optionalFixed32) { null } + override var optionalFixed64: ULong? by MsgFieldDelegate(PresenceIndices.optionalFixed64) { null } + override var optionalSfixed32: Int? by MsgFieldDelegate(PresenceIndices.optionalSfixed32) { null } + override var optionalSfixed64: Long? by MsgFieldDelegate(PresenceIndices.optionalSfixed64) { null } + override var optionalFloat: Float? by MsgFieldDelegate(PresenceIndices.optionalFloat) { null } + override var optionalDouble: Double? by MsgFieldDelegate(PresenceIndices.optionalDouble) { null } + override var optionalBool: Boolean? by MsgFieldDelegate(PresenceIndices.optionalBool) { null } + override var optionalString: String? by MsgFieldDelegate(PresenceIndices.optionalString) { null } + override var optionalBytes: ByteArray? by MsgFieldDelegate(PresenceIndices.optionalBytes) { null } override var optionalNestedMessage: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedMessage by MsgFieldDelegate(PresenceIndices.optionalNestedMessage) { com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2Internal.NestedMessageInternal() } override var optionalForeignMessage: com.google.protobuf_test_messages.editions.proto2.ForeignMessageProto2 by MsgFieldDelegate(PresenceIndices.optionalForeignMessage) { com.google.protobuf_test_messages.editions.proto2.ForeignMessageProto2Internal() } - override var optionalNestedEnum: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedEnum? = null - override var optionalForeignEnum: com.google.protobuf_test_messages.editions.proto2.ForeignEnumProto2? = null - override var optionalStringPiece: String? = null - override var optionalCord: String? = null + override var optionalNestedEnum: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedEnum? by MsgFieldDelegate(PresenceIndices.optionalNestedEnum) { null } + override var optionalForeignEnum: com.google.protobuf_test_messages.editions.proto2.ForeignEnumProto2? by MsgFieldDelegate(PresenceIndices.optionalForeignEnum) { null } + override var optionalStringPiece: String? by MsgFieldDelegate(PresenceIndices.optionalStringPiece) { null } + override var optionalCord: String? by MsgFieldDelegate(PresenceIndices.optionalCord) { null } override var recursiveMessage: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2 by MsgFieldDelegate(PresenceIndices.recursiveMessage) { com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2Internal() } override var repeatedInt32: List by MsgFieldDelegate { mutableListOf() } override var repeatedInt64: List by MsgFieldDelegate { mutableListOf() } @@ -183,27 +183,748 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro override var defaultBool: Boolean by MsgFieldDelegate(PresenceIndices.defaultBool) { true } override var defaultString: String by MsgFieldDelegate(PresenceIndices.defaultString) { "Rosebud" } override var defaultBytes: ByteArray by MsgFieldDelegate(PresenceIndices.defaultBytes) { BytesDefaults.defaultBytes } - override var fieldname1: Int? = null - override var fieldName2: Int? = null - override var FieldName3: Int? = null - override var field_Name4_: Int? = null - override var field0name5: Int? = null - override var field_0Name6: Int? = null - override var fieldName7: Int? = null - override var FieldName8: Int? = null - override var field_Name9: Int? = null - override var Field_Name10: Int? = null - override var FIELD_NAME11: Int? = null - override var FIELDName12: Int? = null - override var _FieldName13: Int? = null - override var __FieldName14: Int? = null - override var field_Name15: Int? = null - override var field__Name16: Int? = null - override var fieldName17__: Int? = null - override var FieldName18__: Int? = null + override var fieldname1: Int? by MsgFieldDelegate(PresenceIndices.fieldname1) { null } + override var fieldName2: Int? by MsgFieldDelegate(PresenceIndices.fieldName2) { null } + override var FieldName3: Int? by MsgFieldDelegate(PresenceIndices.FieldName3) { null } + override var field_Name4_: Int? by MsgFieldDelegate(PresenceIndices.field_Name4_) { null } + override var field0name5: Int? by MsgFieldDelegate(PresenceIndices.field0name5) { null } + override var field_0Name6: Int? by MsgFieldDelegate(PresenceIndices.field_0Name6) { null } + override var fieldName7: Int? by MsgFieldDelegate(PresenceIndices.fieldName7) { null } + override var FieldName8: Int? by MsgFieldDelegate(PresenceIndices.FieldName8) { null } + override var field_Name9: Int? by MsgFieldDelegate(PresenceIndices.field_Name9) { null } + override var Field_Name10: Int? by MsgFieldDelegate(PresenceIndices.Field_Name10) { null } + override var FIELD_NAME11: Int? by MsgFieldDelegate(PresenceIndices.FIELD_NAME11) { null } + override var FIELDName12: Int? by MsgFieldDelegate(PresenceIndices.FIELDName12) { null } + override var _FieldName13: Int? by MsgFieldDelegate(PresenceIndices._FieldName13) { null } + override var __FieldName14: Int? by MsgFieldDelegate(PresenceIndices.__FieldName14) { null } + override var field_Name15: Int? by MsgFieldDelegate(PresenceIndices.field_Name15) { null } + override var field__Name16: Int? by MsgFieldDelegate(PresenceIndices.field__Name16) { null } + override var fieldName17__: Int? by MsgFieldDelegate(PresenceIndices.fieldName17__) { null } + override var FieldName18__: Int? by MsgFieldDelegate(PresenceIndices.FieldName18__) { null } override var messageSetCorrect: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect by MsgFieldDelegate(PresenceIndices.messageSetCorrect) { com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2Internal.MessageSetCorrectInternal() } override var oneofField: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.OneofField? = null + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (optionalInt32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) (optionalInt64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[2]) (optionalUint32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[3]) (optionalUint64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[4]) (optionalSint32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[5]) (optionalSint64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[6]) (optionalFixed32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[7]) (optionalFixed64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[8]) (optionalSfixed32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[9]) (optionalSfixed64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[10]) (optionalFloat?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[11]) (optionalDouble?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[12]) (optionalBool?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[13]) (optionalString?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[14]) (optionalBytes?.contentHashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[15]) optionalNestedMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[16]) optionalForeignMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[17]) (optionalNestedEnum?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[18]) (optionalForeignEnum?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[19]) (optionalStringPiece?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[20]) (optionalCord?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[21]) recursiveMessage.hashCode() else 0 + result = 31 * result + repeatedInt32.hashCode() + result = 31 * result + repeatedInt64.hashCode() + result = 31 * result + repeatedUint32.hashCode() + result = 31 * result + repeatedUint64.hashCode() + result = 31 * result + repeatedSint32.hashCode() + result = 31 * result + repeatedSint64.hashCode() + result = 31 * result + repeatedFixed32.hashCode() + result = 31 * result + repeatedFixed64.hashCode() + result = 31 * result + repeatedSfixed32.hashCode() + result = 31 * result + repeatedSfixed64.hashCode() + result = 31 * result + repeatedFloat.hashCode() + result = 31 * result + repeatedDouble.hashCode() + result = 31 * result + repeatedBool.hashCode() + result = 31 * result + repeatedString.hashCode() + result = 31 * result + repeatedBytes.hashCode() + result = 31 * result + repeatedNestedMessage.hashCode() + result = 31 * result + repeatedForeignMessage.hashCode() + result = 31 * result + repeatedNestedEnum.hashCode() + result = 31 * result + repeatedForeignEnum.hashCode() + result = 31 * result + repeatedStringPiece.hashCode() + result = 31 * result + repeatedCord.hashCode() + result = 31 * result + packedInt32.hashCode() + result = 31 * result + packedInt64.hashCode() + result = 31 * result + packedUint32.hashCode() + result = 31 * result + packedUint64.hashCode() + result = 31 * result + packedSint32.hashCode() + result = 31 * result + packedSint64.hashCode() + result = 31 * result + packedFixed32.hashCode() + result = 31 * result + packedFixed64.hashCode() + result = 31 * result + packedSfixed32.hashCode() + result = 31 * result + packedSfixed64.hashCode() + result = 31 * result + packedFloat.hashCode() + result = 31 * result + packedDouble.hashCode() + result = 31 * result + packedBool.hashCode() + result = 31 * result + packedNestedEnum.hashCode() + result = 31 * result + unpackedInt32.hashCode() + result = 31 * result + unpackedInt64.hashCode() + result = 31 * result + unpackedUint32.hashCode() + result = 31 * result + unpackedUint64.hashCode() + result = 31 * result + unpackedSint32.hashCode() + result = 31 * result + unpackedSint64.hashCode() + result = 31 * result + unpackedFixed32.hashCode() + result = 31 * result + unpackedFixed64.hashCode() + result = 31 * result + unpackedSfixed32.hashCode() + result = 31 * result + unpackedSfixed64.hashCode() + result = 31 * result + unpackedFloat.hashCode() + result = 31 * result + unpackedDouble.hashCode() + result = 31 * result + unpackedBool.hashCode() + result = 31 * result + unpackedNestedEnum.hashCode() + result = 31 * result + mapInt32Int32.hashCode() + result = 31 * result + mapInt64Int64.hashCode() + result = 31 * result + mapUint32Uint32.hashCode() + result = 31 * result + mapUint64Uint64.hashCode() + result = 31 * result + mapSint32Sint32.hashCode() + result = 31 * result + mapSint64Sint64.hashCode() + result = 31 * result + mapFixed32Fixed32.hashCode() + result = 31 * result + mapFixed64Fixed64.hashCode() + result = 31 * result + mapSfixed32Sfixed32.hashCode() + result = 31 * result + mapSfixed64Sfixed64.hashCode() + result = 31 * result + mapInt32Bool.hashCode() + result = 31 * result + mapInt32Float.hashCode() + result = 31 * result + mapInt32Double.hashCode() + result = 31 * result + mapInt32NestedMessage.hashCode() + result = 31 * result + mapBoolBool.hashCode() + result = 31 * result + mapStringString.hashCode() + result = 31 * result + mapStringBytes.hashCode() + result = 31 * result + mapStringNestedMessage.hashCode() + result = 31 * result + mapStringForeignMessage.hashCode() + result = 31 * result + mapStringNestedEnum.hashCode() + result = 31 * result + mapStringForeignEnum.hashCode() + result = 31 * result + if (presenceMask[22]) data.hashCode() else 0 + result = 31 * result + if (presenceMask[23]) multiwordgroupfield.hashCode() else 0 + result = 31 * result + if (presenceMask[24]) defaultInt32.hashCode() else 0 + result = 31 * result + if (presenceMask[25]) defaultInt64.hashCode() else 0 + result = 31 * result + if (presenceMask[26]) defaultUint32.hashCode() else 0 + result = 31 * result + if (presenceMask[27]) defaultUint64.hashCode() else 0 + result = 31 * result + if (presenceMask[28]) defaultSint32.hashCode() else 0 + result = 31 * result + if (presenceMask[29]) defaultSint64.hashCode() else 0 + result = 31 * result + if (presenceMask[30]) defaultFixed32.hashCode() else 0 + result = 31 * result + if (presenceMask[31]) defaultFixed64.hashCode() else 0 + result = 31 * result + if (presenceMask[32]) defaultSfixed32.hashCode() else 0 + result = 31 * result + if (presenceMask[33]) defaultSfixed64.hashCode() else 0 + result = 31 * result + if (presenceMask[34]) defaultFloat.hashCode() else 0 + result = 31 * result + if (presenceMask[35]) defaultDouble.hashCode() else 0 + result = 31 * result + if (presenceMask[36]) defaultBool.hashCode() else 0 + result = 31 * result + if (presenceMask[37]) defaultString.hashCode() else 0 + result = 31 * result + if (presenceMask[38]) defaultBytes.contentHashCode() else 0 + result = 31 * result + if (presenceMask[39]) (fieldname1?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[40]) (fieldName2?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[41]) (FieldName3?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[42]) (field_Name4_?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[43]) (field0name5?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[44]) (field_0Name6?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[45]) (fieldName7?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[46]) (FieldName8?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[47]) (field_Name9?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[48]) (Field_Name10?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[49]) (FIELD_NAME11?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[50]) (FIELDName12?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[51]) (_FieldName13?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[52]) (__FieldName14?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[53]) (field_Name15?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[54]) (field__Name16?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[55]) (fieldName17__?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[56]) (FieldName18__?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[57]) messageSetCorrect.hashCode() else 0 + result = 31 * result + (oneofField?.oneOfHashCode() ?: 0) + return result + } + + fun com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.OneofField.oneOfHashCode(): kotlin.Int { + val offset = when (this) { + is com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.OneofField.OneofUint32 -> 0 + is com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.OneofField.OneofNestedMessage -> 1 + is com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.OneofField.OneofString -> 2 + is com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.OneofField.OneofBytes -> 3 + is com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.OneofField.OneofBool -> 4 + is com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.OneofField.OneofUint64 -> 5 + is com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.OneofField.OneofFloat -> 6 + is com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.OneofField.OneofDouble -> 7 + is com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.OneofField.OneofEnum -> 8 + } + + return hashCode() + offset + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as TestAllTypesProto2Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && optionalInt32 != other.optionalInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && optionalInt64 != other.optionalInt64) return false + if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && optionalUint32 != other.optionalUint32) return false + if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && optionalUint64 != other.optionalUint64) return false + if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && optionalSint32 != other.optionalSint32) return false + if (presenceMask[5] != other.presenceMask[5] || presenceMask[5] && optionalSint64 != other.optionalSint64) return false + if (presenceMask[6] != other.presenceMask[6] || presenceMask[6] && optionalFixed32 != other.optionalFixed32) return false + if (presenceMask[7] != other.presenceMask[7] || presenceMask[7] && optionalFixed64 != other.optionalFixed64) return false + if (presenceMask[8] != other.presenceMask[8] || presenceMask[8] && optionalSfixed32 != other.optionalSfixed32) return false + if (presenceMask[9] != other.presenceMask[9] || presenceMask[9] && optionalSfixed64 != other.optionalSfixed64) return false + if (presenceMask[10] != other.presenceMask[10] || presenceMask[10] && optionalFloat != other.optionalFloat) return false + if (presenceMask[11] != other.presenceMask[11] || presenceMask[11] && optionalDouble != other.optionalDouble) return false + if (presenceMask[12] != other.presenceMask[12] || presenceMask[12] && optionalBool != other.optionalBool) return false + if (presenceMask[13] != other.presenceMask[13] || presenceMask[13] && optionalString != other.optionalString) return false + if (presenceMask[14] != other.presenceMask[14] || presenceMask[14] && ((optionalBytes != null && (other.optionalBytes == null || !optionalBytes!!.contentEquals(other.optionalBytes!!))) || other.optionalBytes != null)) return false + if (presenceMask[15] != other.presenceMask[15] || presenceMask[15] && optionalNestedMessage != other.optionalNestedMessage) return false + if (presenceMask[16] != other.presenceMask[16] || presenceMask[16] && optionalForeignMessage != other.optionalForeignMessage) return false + if (presenceMask[17] != other.presenceMask[17] || presenceMask[17] && optionalNestedEnum != other.optionalNestedEnum) return false + if (presenceMask[18] != other.presenceMask[18] || presenceMask[18] && optionalForeignEnum != other.optionalForeignEnum) return false + if (presenceMask[19] != other.presenceMask[19] || presenceMask[19] && optionalStringPiece != other.optionalStringPiece) return false + if (presenceMask[20] != other.presenceMask[20] || presenceMask[20] && optionalCord != other.optionalCord) return false + if (presenceMask[21] != other.presenceMask[21] || presenceMask[21] && recursiveMessage != other.recursiveMessage) return false + if (repeatedInt32 != other.repeatedInt32) return false + if (repeatedInt64 != other.repeatedInt64) return false + if (repeatedUint32 != other.repeatedUint32) return false + if (repeatedUint64 != other.repeatedUint64) return false + if (repeatedSint32 != other.repeatedSint32) return false + if (repeatedSint64 != other.repeatedSint64) return false + if (repeatedFixed32 != other.repeatedFixed32) return false + if (repeatedFixed64 != other.repeatedFixed64) return false + if (repeatedSfixed32 != other.repeatedSfixed32) return false + if (repeatedSfixed64 != other.repeatedSfixed64) return false + if (repeatedFloat != other.repeatedFloat) return false + if (repeatedDouble != other.repeatedDouble) return false + if (repeatedBool != other.repeatedBool) return false + if (repeatedString != other.repeatedString) return false + if (repeatedBytes != other.repeatedBytes) return false + if (repeatedNestedMessage != other.repeatedNestedMessage) return false + if (repeatedForeignMessage != other.repeatedForeignMessage) return false + if (repeatedNestedEnum != other.repeatedNestedEnum) return false + if (repeatedForeignEnum != other.repeatedForeignEnum) return false + if (repeatedStringPiece != other.repeatedStringPiece) return false + if (repeatedCord != other.repeatedCord) return false + if (packedInt32 != other.packedInt32) return false + if (packedInt64 != other.packedInt64) return false + if (packedUint32 != other.packedUint32) return false + if (packedUint64 != other.packedUint64) return false + if (packedSint32 != other.packedSint32) return false + if (packedSint64 != other.packedSint64) return false + if (packedFixed32 != other.packedFixed32) return false + if (packedFixed64 != other.packedFixed64) return false + if (packedSfixed32 != other.packedSfixed32) return false + if (packedSfixed64 != other.packedSfixed64) return false + if (packedFloat != other.packedFloat) return false + if (packedDouble != other.packedDouble) return false + if (packedBool != other.packedBool) return false + if (packedNestedEnum != other.packedNestedEnum) return false + if (unpackedInt32 != other.unpackedInt32) return false + if (unpackedInt64 != other.unpackedInt64) return false + if (unpackedUint32 != other.unpackedUint32) return false + if (unpackedUint64 != other.unpackedUint64) return false + if (unpackedSint32 != other.unpackedSint32) return false + if (unpackedSint64 != other.unpackedSint64) return false + if (unpackedFixed32 != other.unpackedFixed32) return false + if (unpackedFixed64 != other.unpackedFixed64) return false + if (unpackedSfixed32 != other.unpackedSfixed32) return false + if (unpackedSfixed64 != other.unpackedSfixed64) return false + if (unpackedFloat != other.unpackedFloat) return false + if (unpackedDouble != other.unpackedDouble) return false + if (unpackedBool != other.unpackedBool) return false + if (unpackedNestedEnum != other.unpackedNestedEnum) return false + if (mapInt32Int32 != other.mapInt32Int32) return false + if (mapInt64Int64 != other.mapInt64Int64) return false + if (mapUint32Uint32 != other.mapUint32Uint32) return false + if (mapUint64Uint64 != other.mapUint64Uint64) return false + if (mapSint32Sint32 != other.mapSint32Sint32) return false + if (mapSint64Sint64 != other.mapSint64Sint64) return false + if (mapFixed32Fixed32 != other.mapFixed32Fixed32) return false + if (mapFixed64Fixed64 != other.mapFixed64Fixed64) return false + if (mapSfixed32Sfixed32 != other.mapSfixed32Sfixed32) return false + if (mapSfixed64Sfixed64 != other.mapSfixed64Sfixed64) return false + if (mapInt32Bool != other.mapInt32Bool) return false + if (mapInt32Float != other.mapInt32Float) return false + if (mapInt32Double != other.mapInt32Double) return false + if (mapInt32NestedMessage != other.mapInt32NestedMessage) return false + if (mapBoolBool != other.mapBoolBool) return false + if (mapStringString != other.mapStringString) return false + if (mapStringBytes != other.mapStringBytes) return false + if (mapStringNestedMessage != other.mapStringNestedMessage) return false + if (mapStringForeignMessage != other.mapStringForeignMessage) return false + if (mapStringNestedEnum != other.mapStringNestedEnum) return false + if (mapStringForeignEnum != other.mapStringForeignEnum) return false + if (presenceMask[22] != other.presenceMask[22] || presenceMask[22] && data != other.data) return false + if (presenceMask[23] != other.presenceMask[23] || presenceMask[23] && multiwordgroupfield != other.multiwordgroupfield) return false + if (presenceMask[24] != other.presenceMask[24] || presenceMask[24] && defaultInt32 != other.defaultInt32) return false + if (presenceMask[25] != other.presenceMask[25] || presenceMask[25] && defaultInt64 != other.defaultInt64) return false + if (presenceMask[26] != other.presenceMask[26] || presenceMask[26] && defaultUint32 != other.defaultUint32) return false + if (presenceMask[27] != other.presenceMask[27] || presenceMask[27] && defaultUint64 != other.defaultUint64) return false + if (presenceMask[28] != other.presenceMask[28] || presenceMask[28] && defaultSint32 != other.defaultSint32) return false + if (presenceMask[29] != other.presenceMask[29] || presenceMask[29] && defaultSint64 != other.defaultSint64) return false + if (presenceMask[30] != other.presenceMask[30] || presenceMask[30] && defaultFixed32 != other.defaultFixed32) return false + if (presenceMask[31] != other.presenceMask[31] || presenceMask[31] && defaultFixed64 != other.defaultFixed64) return false + if (presenceMask[32] != other.presenceMask[32] || presenceMask[32] && defaultSfixed32 != other.defaultSfixed32) return false + if (presenceMask[33] != other.presenceMask[33] || presenceMask[33] && defaultSfixed64 != other.defaultSfixed64) return false + if (presenceMask[34] != other.presenceMask[34] || presenceMask[34] && defaultFloat != other.defaultFloat) return false + if (presenceMask[35] != other.presenceMask[35] || presenceMask[35] && defaultDouble != other.defaultDouble) return false + if (presenceMask[36] != other.presenceMask[36] || presenceMask[36] && defaultBool != other.defaultBool) return false + if (presenceMask[37] != other.presenceMask[37] || presenceMask[37] && defaultString != other.defaultString) return false + if (presenceMask[38] != other.presenceMask[38] || presenceMask[38] && !defaultBytes.contentEquals(other.defaultBytes)) return false + if (presenceMask[39] != other.presenceMask[39] || presenceMask[39] && fieldname1 != other.fieldname1) return false + if (presenceMask[40] != other.presenceMask[40] || presenceMask[40] && fieldName2 != other.fieldName2) return false + if (presenceMask[41] != other.presenceMask[41] || presenceMask[41] && FieldName3 != other.FieldName3) return false + if (presenceMask[42] != other.presenceMask[42] || presenceMask[42] && field_Name4_ != other.field_Name4_) return false + if (presenceMask[43] != other.presenceMask[43] || presenceMask[43] && field0name5 != other.field0name5) return false + if (presenceMask[44] != other.presenceMask[44] || presenceMask[44] && field_0Name6 != other.field_0Name6) return false + if (presenceMask[45] != other.presenceMask[45] || presenceMask[45] && fieldName7 != other.fieldName7) return false + if (presenceMask[46] != other.presenceMask[46] || presenceMask[46] && FieldName8 != other.FieldName8) return false + if (presenceMask[47] != other.presenceMask[47] || presenceMask[47] && field_Name9 != other.field_Name9) return false + if (presenceMask[48] != other.presenceMask[48] || presenceMask[48] && Field_Name10 != other.Field_Name10) return false + if (presenceMask[49] != other.presenceMask[49] || presenceMask[49] && FIELD_NAME11 != other.FIELD_NAME11) return false + if (presenceMask[50] != other.presenceMask[50] || presenceMask[50] && FIELDName12 != other.FIELDName12) return false + if (presenceMask[51] != other.presenceMask[51] || presenceMask[51] && _FieldName13 != other._FieldName13) return false + if (presenceMask[52] != other.presenceMask[52] || presenceMask[52] && __FieldName14 != other.__FieldName14) return false + if (presenceMask[53] != other.presenceMask[53] || presenceMask[53] && field_Name15 != other.field_Name15) return false + if (presenceMask[54] != other.presenceMask[54] || presenceMask[54] && field__Name16 != other.field__Name16) return false + if (presenceMask[55] != other.presenceMask[55] || presenceMask[55] && fieldName17__ != other.fieldName17__) return false + if (presenceMask[56] != other.presenceMask[56] || presenceMask[56] && FieldName18__ != other.FieldName18__) return false + if (presenceMask[57] != other.presenceMask[57] || presenceMask[57] && messageSetCorrect != other.messageSetCorrect) return false + if (oneofField != other.oneofField) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2(") + if (presenceMask[0]) { + appendLine("${nextIndentString}optionalInt32=${optionalInt32},") + } else { + appendLine("${nextIndentString}optionalInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}optionalInt64=${optionalInt64},") + } else { + appendLine("${nextIndentString}optionalInt64=,") + } + + if (presenceMask[2]) { + appendLine("${nextIndentString}optionalUint32=${optionalUint32},") + } else { + appendLine("${nextIndentString}optionalUint32=,") + } + + if (presenceMask[3]) { + appendLine("${nextIndentString}optionalUint64=${optionalUint64},") + } else { + appendLine("${nextIndentString}optionalUint64=,") + } + + if (presenceMask[4]) { + appendLine("${nextIndentString}optionalSint32=${optionalSint32},") + } else { + appendLine("${nextIndentString}optionalSint32=,") + } + + if (presenceMask[5]) { + appendLine("${nextIndentString}optionalSint64=${optionalSint64},") + } else { + appendLine("${nextIndentString}optionalSint64=,") + } + + if (presenceMask[6]) { + appendLine("${nextIndentString}optionalFixed32=${optionalFixed32},") + } else { + appendLine("${nextIndentString}optionalFixed32=,") + } + + if (presenceMask[7]) { + appendLine("${nextIndentString}optionalFixed64=${optionalFixed64},") + } else { + appendLine("${nextIndentString}optionalFixed64=,") + } + + if (presenceMask[8]) { + appendLine("${nextIndentString}optionalSfixed32=${optionalSfixed32},") + } else { + appendLine("${nextIndentString}optionalSfixed32=,") + } + + if (presenceMask[9]) { + appendLine("${nextIndentString}optionalSfixed64=${optionalSfixed64},") + } else { + appendLine("${nextIndentString}optionalSfixed64=,") + } + + if (presenceMask[10]) { + appendLine("${nextIndentString}optionalFloat=${optionalFloat},") + } else { + appendLine("${nextIndentString}optionalFloat=,") + } + + if (presenceMask[11]) { + appendLine("${nextIndentString}optionalDouble=${optionalDouble},") + } else { + appendLine("${nextIndentString}optionalDouble=,") + } + + if (presenceMask[12]) { + appendLine("${nextIndentString}optionalBool=${optionalBool},") + } else { + appendLine("${nextIndentString}optionalBool=,") + } + + if (presenceMask[13]) { + appendLine("${nextIndentString}optionalString=${optionalString},") + } else { + appendLine("${nextIndentString}optionalString=,") + } + + if (presenceMask[14]) { + appendLine("${nextIndentString}optionalBytes=${optionalBytes.contentToString()},") + } else { + appendLine("${nextIndentString}optionalBytes=,") + } + + if (presenceMask[15]) { + appendLine("${nextIndentString}optionalNestedMessage=${optionalNestedMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalNestedMessage=,") + } + + if (presenceMask[16]) { + appendLine("${nextIndentString}optionalForeignMessage=${optionalForeignMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalForeignMessage=,") + } + + if (presenceMask[17]) { + appendLine("${nextIndentString}optionalNestedEnum=${optionalNestedEnum},") + } else { + appendLine("${nextIndentString}optionalNestedEnum=,") + } + + if (presenceMask[18]) { + appendLine("${nextIndentString}optionalForeignEnum=${optionalForeignEnum},") + } else { + appendLine("${nextIndentString}optionalForeignEnum=,") + } + + if (presenceMask[19]) { + appendLine("${nextIndentString}optionalStringPiece=${optionalStringPiece},") + } else { + appendLine("${nextIndentString}optionalStringPiece=,") + } + + if (presenceMask[20]) { + appendLine("${nextIndentString}optionalCord=${optionalCord},") + } else { + appendLine("${nextIndentString}optionalCord=,") + } + + if (presenceMask[21]) { + appendLine("${nextIndentString}recursiveMessage=${recursiveMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}recursiveMessage=,") + } + + appendLine("${nextIndentString}repeatedInt32=${repeatedInt32},") + appendLine("${nextIndentString}repeatedInt64=${repeatedInt64},") + appendLine("${nextIndentString}repeatedUint32=${repeatedUint32},") + appendLine("${nextIndentString}repeatedUint64=${repeatedUint64},") + appendLine("${nextIndentString}repeatedSint32=${repeatedSint32},") + appendLine("${nextIndentString}repeatedSint64=${repeatedSint64},") + appendLine("${nextIndentString}repeatedFixed32=${repeatedFixed32},") + appendLine("${nextIndentString}repeatedFixed64=${repeatedFixed64},") + appendLine("${nextIndentString}repeatedSfixed32=${repeatedSfixed32},") + appendLine("${nextIndentString}repeatedSfixed64=${repeatedSfixed64},") + appendLine("${nextIndentString}repeatedFloat=${repeatedFloat},") + appendLine("${nextIndentString}repeatedDouble=${repeatedDouble},") + appendLine("${nextIndentString}repeatedBool=${repeatedBool},") + appendLine("${nextIndentString}repeatedString=${repeatedString},") + appendLine("${nextIndentString}repeatedBytes=${repeatedBytes},") + appendLine("${nextIndentString}repeatedNestedMessage=${repeatedNestedMessage},") + appendLine("${nextIndentString}repeatedForeignMessage=${repeatedForeignMessage},") + appendLine("${nextIndentString}repeatedNestedEnum=${repeatedNestedEnum},") + appendLine("${nextIndentString}repeatedForeignEnum=${repeatedForeignEnum},") + appendLine("${nextIndentString}repeatedStringPiece=${repeatedStringPiece},") + appendLine("${nextIndentString}repeatedCord=${repeatedCord},") + appendLine("${nextIndentString}packedInt32=${packedInt32},") + appendLine("${nextIndentString}packedInt64=${packedInt64},") + appendLine("${nextIndentString}packedUint32=${packedUint32},") + appendLine("${nextIndentString}packedUint64=${packedUint64},") + appendLine("${nextIndentString}packedSint32=${packedSint32},") + appendLine("${nextIndentString}packedSint64=${packedSint64},") + appendLine("${nextIndentString}packedFixed32=${packedFixed32},") + appendLine("${nextIndentString}packedFixed64=${packedFixed64},") + appendLine("${nextIndentString}packedSfixed32=${packedSfixed32},") + appendLine("${nextIndentString}packedSfixed64=${packedSfixed64},") + appendLine("${nextIndentString}packedFloat=${packedFloat},") + appendLine("${nextIndentString}packedDouble=${packedDouble},") + appendLine("${nextIndentString}packedBool=${packedBool},") + appendLine("${nextIndentString}packedNestedEnum=${packedNestedEnum},") + appendLine("${nextIndentString}unpackedInt32=${unpackedInt32},") + appendLine("${nextIndentString}unpackedInt64=${unpackedInt64},") + appendLine("${nextIndentString}unpackedUint32=${unpackedUint32},") + appendLine("${nextIndentString}unpackedUint64=${unpackedUint64},") + appendLine("${nextIndentString}unpackedSint32=${unpackedSint32},") + appendLine("${nextIndentString}unpackedSint64=${unpackedSint64},") + appendLine("${nextIndentString}unpackedFixed32=${unpackedFixed32},") + appendLine("${nextIndentString}unpackedFixed64=${unpackedFixed64},") + appendLine("${nextIndentString}unpackedSfixed32=${unpackedSfixed32},") + appendLine("${nextIndentString}unpackedSfixed64=${unpackedSfixed64},") + appendLine("${nextIndentString}unpackedFloat=${unpackedFloat},") + appendLine("${nextIndentString}unpackedDouble=${unpackedDouble},") + appendLine("${nextIndentString}unpackedBool=${unpackedBool},") + appendLine("${nextIndentString}unpackedNestedEnum=${unpackedNestedEnum},") + appendLine("${nextIndentString}mapInt32Int32=${mapInt32Int32},") + appendLine("${nextIndentString}mapInt64Int64=${mapInt64Int64},") + appendLine("${nextIndentString}mapUint32Uint32=${mapUint32Uint32},") + appendLine("${nextIndentString}mapUint64Uint64=${mapUint64Uint64},") + appendLine("${nextIndentString}mapSint32Sint32=${mapSint32Sint32},") + appendLine("${nextIndentString}mapSint64Sint64=${mapSint64Sint64},") + appendLine("${nextIndentString}mapFixed32Fixed32=${mapFixed32Fixed32},") + appendLine("${nextIndentString}mapFixed64Fixed64=${mapFixed64Fixed64},") + appendLine("${nextIndentString}mapSfixed32Sfixed32=${mapSfixed32Sfixed32},") + appendLine("${nextIndentString}mapSfixed64Sfixed64=${mapSfixed64Sfixed64},") + appendLine("${nextIndentString}mapInt32Bool=${mapInt32Bool},") + appendLine("${nextIndentString}mapInt32Float=${mapInt32Float},") + appendLine("${nextIndentString}mapInt32Double=${mapInt32Double},") + appendLine("${nextIndentString}mapInt32NestedMessage=${mapInt32NestedMessage},") + appendLine("${nextIndentString}mapBoolBool=${mapBoolBool},") + appendLine("${nextIndentString}mapStringString=${mapStringString},") + appendLine("${nextIndentString}mapStringBytes=${mapStringBytes},") + appendLine("${nextIndentString}mapStringNestedMessage=${mapStringNestedMessage},") + appendLine("${nextIndentString}mapStringForeignMessage=${mapStringForeignMessage},") + appendLine("${nextIndentString}mapStringNestedEnum=${mapStringNestedEnum},") + appendLine("${nextIndentString}mapStringForeignEnum=${mapStringForeignEnum},") + if (presenceMask[22]) { + appendLine("${nextIndentString}data=${data.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}data=,") + } + + if (presenceMask[23]) { + appendLine("${nextIndentString}multiwordgroupfield=${multiwordgroupfield.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}multiwordgroupfield=,") + } + + if (presenceMask[24]) { + appendLine("${nextIndentString}defaultInt32=${defaultInt32},") + } else { + appendLine("${nextIndentString}defaultInt32=,") + } + + if (presenceMask[25]) { + appendLine("${nextIndentString}defaultInt64=${defaultInt64},") + } else { + appendLine("${nextIndentString}defaultInt64=,") + } + + if (presenceMask[26]) { + appendLine("${nextIndentString}defaultUint32=${defaultUint32},") + } else { + appendLine("${nextIndentString}defaultUint32=,") + } + + if (presenceMask[27]) { + appendLine("${nextIndentString}defaultUint64=${defaultUint64},") + } else { + appendLine("${nextIndentString}defaultUint64=,") + } + + if (presenceMask[28]) { + appendLine("${nextIndentString}defaultSint32=${defaultSint32},") + } else { + appendLine("${nextIndentString}defaultSint32=,") + } + + if (presenceMask[29]) { + appendLine("${nextIndentString}defaultSint64=${defaultSint64},") + } else { + appendLine("${nextIndentString}defaultSint64=,") + } + + if (presenceMask[30]) { + appendLine("${nextIndentString}defaultFixed32=${defaultFixed32},") + } else { + appendLine("${nextIndentString}defaultFixed32=,") + } + + if (presenceMask[31]) { + appendLine("${nextIndentString}defaultFixed64=${defaultFixed64},") + } else { + appendLine("${nextIndentString}defaultFixed64=,") + } + + if (presenceMask[32]) { + appendLine("${nextIndentString}defaultSfixed32=${defaultSfixed32},") + } else { + appendLine("${nextIndentString}defaultSfixed32=,") + } + + if (presenceMask[33]) { + appendLine("${nextIndentString}defaultSfixed64=${defaultSfixed64},") + } else { + appendLine("${nextIndentString}defaultSfixed64=,") + } + + if (presenceMask[34]) { + appendLine("${nextIndentString}defaultFloat=${defaultFloat},") + } else { + appendLine("${nextIndentString}defaultFloat=,") + } + + if (presenceMask[35]) { + appendLine("${nextIndentString}defaultDouble=${defaultDouble},") + } else { + appendLine("${nextIndentString}defaultDouble=,") + } + + if (presenceMask[36]) { + appendLine("${nextIndentString}defaultBool=${defaultBool},") + } else { + appendLine("${nextIndentString}defaultBool=,") + } + + if (presenceMask[37]) { + appendLine("${nextIndentString}defaultString=${defaultString},") + } else { + appendLine("${nextIndentString}defaultString=,") + } + + if (presenceMask[38]) { + appendLine("${nextIndentString}defaultBytes=${defaultBytes.contentToString()},") + } else { + appendLine("${nextIndentString}defaultBytes=,") + } + + if (presenceMask[39]) { + appendLine("${nextIndentString}fieldname1=${fieldname1},") + } else { + appendLine("${nextIndentString}fieldname1=,") + } + + if (presenceMask[40]) { + appendLine("${nextIndentString}fieldName2=${fieldName2},") + } else { + appendLine("${nextIndentString}fieldName2=,") + } + + if (presenceMask[41]) { + appendLine("${nextIndentString}FieldName3=${FieldName3},") + } else { + appendLine("${nextIndentString}FieldName3=,") + } + + if (presenceMask[42]) { + appendLine("${nextIndentString}field_Name4_=${field_Name4_},") + } else { + appendLine("${nextIndentString}field_Name4_=,") + } + + if (presenceMask[43]) { + appendLine("${nextIndentString}field0name5=${field0name5},") + } else { + appendLine("${nextIndentString}field0name5=,") + } + + if (presenceMask[44]) { + appendLine("${nextIndentString}field_0Name6=${field_0Name6},") + } else { + appendLine("${nextIndentString}field_0Name6=,") + } + + if (presenceMask[45]) { + appendLine("${nextIndentString}fieldName7=${fieldName7},") + } else { + appendLine("${nextIndentString}fieldName7=,") + } + + if (presenceMask[46]) { + appendLine("${nextIndentString}FieldName8=${FieldName8},") + } else { + appendLine("${nextIndentString}FieldName8=,") + } + + if (presenceMask[47]) { + appendLine("${nextIndentString}field_Name9=${field_Name9},") + } else { + appendLine("${nextIndentString}field_Name9=,") + } + + if (presenceMask[48]) { + appendLine("${nextIndentString}Field_Name10=${Field_Name10},") + } else { + appendLine("${nextIndentString}Field_Name10=,") + } + + if (presenceMask[49]) { + appendLine("${nextIndentString}FIELD_NAME11=${FIELD_NAME11},") + } else { + appendLine("${nextIndentString}FIELD_NAME11=,") + } + + if (presenceMask[50]) { + appendLine("${nextIndentString}FIELDName12=${FIELDName12},") + } else { + appendLine("${nextIndentString}FIELDName12=,") + } + + if (presenceMask[51]) { + appendLine("${nextIndentString}_FieldName13=${_FieldName13},") + } else { + appendLine("${nextIndentString}_FieldName13=,") + } + + if (presenceMask[52]) { + appendLine("${nextIndentString}__FieldName14=${__FieldName14},") + } else { + appendLine("${nextIndentString}__FieldName14=,") + } + + if (presenceMask[53]) { + appendLine("${nextIndentString}field_Name15=${field_Name15},") + } else { + appendLine("${nextIndentString}field_Name15=,") + } + + if (presenceMask[54]) { + appendLine("${nextIndentString}field__Name16=${field__Name16},") + } else { + appendLine("${nextIndentString}field__Name16=,") + } + + if (presenceMask[55]) { + appendLine("${nextIndentString}fieldName17__=${fieldName17__},") + } else { + appendLine("${nextIndentString}fieldName17__=,") + } + + if (presenceMask[56]) { + appendLine("${nextIndentString}FieldName18__=${FieldName18__},") + } else { + appendLine("${nextIndentString}FieldName18__=,") + } + + if (presenceMask[57]) { + appendLine("${nextIndentString}messageSetCorrect=${messageSetCorrect.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}messageSetCorrect=,") + } + + appendLine("${nextIndentString}oneofField=${oneofField},") + append("${indentString})") + } + } + class NestedMessageInternal: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedMessage, kotlinx.rpc.protobuf.internal.InternalMessage(fieldsWithPresence = 2) { private object PresenceIndices { const val a: Int = 0 @@ -213,9 +934,53 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var a: Int? = null + override var a: Int? by MsgFieldDelegate(PresenceIndices.a) { null } override var corecursive: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2 by MsgFieldDelegate(PresenceIndices.corecursive) { com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2Internal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (a?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) corecursive.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as NestedMessageInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && a != other.a) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && corecursive != other.corecursive) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedMessage(") + if (presenceMask[0]) { + appendLine("${nextIndentString}a=${a},") + } else { + appendLine("${nextIndentString}a=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}corecursive=${corecursive.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}corecursive=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedMessage): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -256,6 +1021,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Int by MsgFieldDelegate(PresenceIndices.value) { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32Int32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapInt32Int32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -272,6 +1081,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: Long by MsgFieldDelegate(PresenceIndices.key) { 0L } var value: Long by MsgFieldDelegate(PresenceIndices.value) { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt64Int64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapInt64Int64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -288,6 +1141,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: UInt by MsgFieldDelegate(PresenceIndices.key) { 0u } var value: UInt by MsgFieldDelegate(PresenceIndices.value) { 0u } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapUint32Uint32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapUint32Uint32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -304,6 +1201,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: ULong by MsgFieldDelegate(PresenceIndices.key) { 0uL } var value: ULong by MsgFieldDelegate(PresenceIndices.value) { 0uL } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapUint64Uint64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapUint64Uint64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -320,6 +1261,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Int by MsgFieldDelegate(PresenceIndices.value) { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSint32Sint32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapSint32Sint32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -336,6 +1321,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: Long by MsgFieldDelegate(PresenceIndices.key) { 0L } var value: Long by MsgFieldDelegate(PresenceIndices.value) { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSint64Sint64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapSint64Sint64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -352,6 +1381,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: UInt by MsgFieldDelegate(PresenceIndices.key) { 0u } var value: UInt by MsgFieldDelegate(PresenceIndices.value) { 0u } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapFixed32Fixed32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -368,6 +1441,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: ULong by MsgFieldDelegate(PresenceIndices.key) { 0uL } var value: ULong by MsgFieldDelegate(PresenceIndices.value) { 0uL } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapFixed64Fixed64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -384,6 +1501,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Int by MsgFieldDelegate(PresenceIndices.value) { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSfixed32Sfixed32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -400,6 +1561,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: Long by MsgFieldDelegate(PresenceIndices.key) { 0L } var value: Long by MsgFieldDelegate(PresenceIndices.value) { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSfixed64Sfixed64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -416,6 +1621,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Boolean by MsgFieldDelegate(PresenceIndices.value) { false } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32BoolEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapInt32BoolEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -432,6 +1681,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Float by MsgFieldDelegate(PresenceIndices.value) { 0.0f } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32FloatEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapInt32FloatEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -448,6 +1741,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Double by MsgFieldDelegate(PresenceIndices.value) { 0.0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32DoubleEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapInt32DoubleEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -464,6 +1801,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedMessage by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2Internal.NestedMessageInternal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32NestedMessageEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapInt32NestedMessageEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -480,6 +1861,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: Boolean by MsgFieldDelegate(PresenceIndices.key) { false } var value: Boolean by MsgFieldDelegate(PresenceIndices.value) { false } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapBoolBoolEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapBoolBoolEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -496,6 +1921,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: String by MsgFieldDelegate(PresenceIndices.value) { "" } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringStringEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapStringStringEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -512,6 +1981,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: ByteArray by MsgFieldDelegate(PresenceIndices.value) { byteArrayOf() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.contentHashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringBytesEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && !value.contentEquals(other.value)) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapStringBytesEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value.contentToString()},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -528,6 +2041,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedMessage by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2Internal.NestedMessageInternal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringNestedMessageEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapStringNestedMessageEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -544,6 +2101,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: com.google.protobuf_test_messages.editions.proto2.ForeignMessageProto2 by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.editions.proto2.ForeignMessageProto2Internal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringForeignMessageEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapStringForeignMessageEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -560,6 +2161,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedEnum by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.NestedEnum.FOO } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringNestedEnumEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapStringNestedEnumEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -576,6 +2221,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: com.google.protobuf_test_messages.editions.proto2.ForeignEnumProto2 by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.editions.proto2.ForeignEnumProto2.FOREIGN_FOO } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringForeignEnumEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MapStringForeignEnumEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -589,8 +2278,52 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var groupInt32: Int? = null - override var groupUint32: UInt? = null + override var groupInt32: Int? by MsgFieldDelegate(PresenceIndices.groupInt32) { null } + override var groupUint32: UInt? by MsgFieldDelegate(PresenceIndices.groupUint32) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (groupInt32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) (groupUint32?.hashCode() ?: 0) else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as DataInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.Data(") + if (presenceMask[0]) { + appendLine("${nextIndentString}groupInt32=${groupInt32},") + } else { + appendLine("${nextIndentString}groupInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}groupUint32=${groupUint32},") + } else { + appendLine("${nextIndentString}groupUint32=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi companion object @@ -605,8 +2338,52 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var groupInt32: Int? = null - override var groupUint32: UInt? = null + override var groupInt32: Int? by MsgFieldDelegate(PresenceIndices.groupInt32) { null } + override var groupUint32: UInt? by MsgFieldDelegate(PresenceIndices.groupUint32) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (groupInt32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) (groupUint32?.hashCode() ?: 0) else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MultiWordGroupFieldInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MultiWordGroupField(") + if (presenceMask[0]) { + appendLine("${nextIndentString}groupInt32=${groupInt32},") + } else { + appendLine("${nextIndentString}groupInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}groupUint32=${groupUint32},") + } else { + appendLine("${nextIndentString}groupUint32=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi companion object @@ -616,6 +2393,34 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MessageSetCorrectInternal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrect): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -652,7 +2457,42 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var str: String? = null + override var str: String? by MsgFieldDelegate(PresenceIndices.str) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) (str?.hashCode() ?: 0) else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MessageSetCorrectExtension1Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && str != other.str) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension1(") + if (presenceMask[0]) { + appendLine("${nextIndentString}str=${str},") + } else { + appendLine("${nextIndentString}str=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { @@ -690,7 +2530,42 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var i: Int? = null + override var i: Int? by MsgFieldDelegate(PresenceIndices.i) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) (i?.hashCode() ?: 0) else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MessageSetCorrectExtension2Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && i != other.i) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.MessageSetCorrectExtension2(") + if (presenceMask[0]) { + appendLine("${nextIndentString}i=${i},") + } else { + appendLine("${nextIndentString}i=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { @@ -726,6 +2601,45 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro override var oneofField: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.ExtensionWithOneof.OneofField? = null + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return (oneofField?.oneOfHashCode() ?: 0) + } + + fun com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.ExtensionWithOneof.OneofField.oneOfHashCode(): kotlin.Int { + val offset = when (this) { + is com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.ExtensionWithOneof.OneofField.A -> 0 + is com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.ExtensionWithOneof.OneofField.B -> 1 + } + + return hashCode() + offset + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ExtensionWithOneofInternal + other.checkRequiredFields() + if (oneofField != other.oneofField) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.ExtensionWithOneof(") + appendLine("${nextIndentString}oneofField=${oneofField},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.TestAllTypesProto2.ExtensionWithOneof): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -790,7 +2704,42 @@ class ForeignMessageProto2Internal: com.google.protobuf_test_messages.editions.p @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var c: Int? = null + override var c: Int? by MsgFieldDelegate(PresenceIndices.c) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) (c?.hashCode() ?: 0) else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ForeignMessageProto2Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && c != other.c) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.ForeignMessageProto2(") + if (presenceMask[0]) { + appendLine("${nextIndentString}c=${c},") + } else { + appendLine("${nextIndentString}c=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { @@ -829,8 +2778,52 @@ class GroupFieldInternal: com.google.protobuf_test_messages.editions.proto2.Grou @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var groupInt32: Int? = null - override var groupUint32: UInt? = null + override var groupInt32: Int? by MsgFieldDelegate(PresenceIndices.groupInt32) { null } + override var groupUint32: UInt? by MsgFieldDelegate(PresenceIndices.groupUint32) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (groupInt32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) (groupUint32?.hashCode() ?: 0) else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as GroupFieldInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.GroupField(") + if (presenceMask[0]) { + appendLine("${nextIndentString}groupInt32=${groupInt32},") + } else { + appendLine("${nextIndentString}groupInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}groupUint32=${groupUint32},") + } else { + appendLine("${nextIndentString}groupUint32=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { @@ -869,15 +2862,86 @@ class UnknownToTestAllTypesInternal: com.google.protobuf_test_messages.editions. const val optionalBool: Int = 4 } - @kotlinx.rpc.internal.utils.InternalRpcApi - override val _size: Int by lazy { computeSize() } + @kotlinx.rpc.internal.utils.InternalRpcApi + override val _size: Int by lazy { computeSize() } + + override var optionalInt32: Int? by MsgFieldDelegate(PresenceIndices.optionalInt32) { null } + override var optionalString: String? by MsgFieldDelegate(PresenceIndices.optionalString) { null } + override var nestedMessage: com.google.protobuf_test_messages.editions.proto2.ForeignMessageProto2 by MsgFieldDelegate(PresenceIndices.nestedMessage) { com.google.protobuf_test_messages.editions.proto2.ForeignMessageProto2Internal() } + override var optionalgroup: com.google.protobuf_test_messages.editions.proto2.UnknownToTestAllTypes.OptionalGroup by MsgFieldDelegate(PresenceIndices.optionalgroup) { com.google.protobuf_test_messages.editions.proto2.UnknownToTestAllTypesInternal.OptionalGroupInternal() } + override var optionalBool: Boolean? by MsgFieldDelegate(PresenceIndices.optionalBool) { null } + override var repeatedInt32: List by MsgFieldDelegate { mutableListOf() } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (optionalInt32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) (optionalString?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[2]) nestedMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[3]) optionalgroup.hashCode() else 0 + result = 31 * result + if (presenceMask[4]) (optionalBool?.hashCode() ?: 0) else 0 + result = 31 * result + repeatedInt32.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as UnknownToTestAllTypesInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && optionalInt32 != other.optionalInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && optionalString != other.optionalString) return false + if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && nestedMessage != other.nestedMessage) return false + if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && optionalgroup != other.optionalgroup) return false + if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && optionalBool != other.optionalBool) return false + if (repeatedInt32 != other.repeatedInt32) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.UnknownToTestAllTypes(") + if (presenceMask[0]) { + appendLine("${nextIndentString}optionalInt32=${optionalInt32},") + } else { + appendLine("${nextIndentString}optionalInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}optionalString=${optionalString},") + } else { + appendLine("${nextIndentString}optionalString=,") + } - override var optionalInt32: Int? = null - override var optionalString: String? = null - override var nestedMessage: com.google.protobuf_test_messages.editions.proto2.ForeignMessageProto2 by MsgFieldDelegate(PresenceIndices.nestedMessage) { com.google.protobuf_test_messages.editions.proto2.ForeignMessageProto2Internal() } - override var optionalgroup: com.google.protobuf_test_messages.editions.proto2.UnknownToTestAllTypes.OptionalGroup by MsgFieldDelegate(PresenceIndices.optionalgroup) { com.google.protobuf_test_messages.editions.proto2.UnknownToTestAllTypesInternal.OptionalGroupInternal() } - override var optionalBool: Boolean? = null - override var repeatedInt32: List by MsgFieldDelegate { mutableListOf() } + if (presenceMask[2]) { + appendLine("${nextIndentString}nestedMessage=${nestedMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}nestedMessage=,") + } + + if (presenceMask[3]) { + appendLine("${nextIndentString}optionalgroup=${optionalgroup.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalgroup=,") + } + + if (presenceMask[4]) { + appendLine("${nextIndentString}optionalBool=${optionalBool},") + } else { + appendLine("${nextIndentString}optionalBool=,") + } + + appendLine("${nextIndentString}repeatedInt32=${repeatedInt32},") + append("${indentString})") + } + } class OptionalGroupInternal: com.google.protobuf_test_messages.editions.proto2.UnknownToTestAllTypes.OptionalGroup, kotlinx.rpc.protobuf.internal.InternalMessage(fieldsWithPresence = 1) { private object PresenceIndices { @@ -887,7 +2951,42 @@ class UnknownToTestAllTypesInternal: com.google.protobuf_test_messages.editions. @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var a: Int? = null + override var a: Int? by MsgFieldDelegate(PresenceIndices.a) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) (a?.hashCode() ?: 0) else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as OptionalGroupInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && a != other.a) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.UnknownToTestAllTypes.OptionalGroup(") + if (presenceMask[0]) { + appendLine("${nextIndentString}a=${a},") + } else { + appendLine("${nextIndentString}a=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi companion object @@ -925,6 +3024,34 @@ class NullHypothesisProto2Internal: com.google.protobuf_test_messages.editions.p @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as NullHypothesisProto2Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.NullHypothesisProto2(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.NullHypothesisProto2): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -957,6 +3084,34 @@ class EnumOnlyProto2Internal: com.google.protobuf_test_messages.editions.proto2. @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as EnumOnlyProto2Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.EnumOnlyProto2(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.EnumOnlyProto2): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -993,7 +3148,42 @@ class OneStringProto2Internal: com.google.protobuf_test_messages.editions.proto2 @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var data: String? = null + override var data: String? by MsgFieldDelegate(PresenceIndices.data) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) (data?.hashCode() ?: 0) else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as OneStringProto2Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && data != other.data) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.OneStringProto2(") + if (presenceMask[0]) { + appendLine("${nextIndentString}data=${data},") + } else { + appendLine("${nextIndentString}data=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { @@ -1032,10 +3222,57 @@ class ProtoWithKeywordsInternal: com.google.protobuf_test_messages.editions.prot @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var inline: Int? = null - override var concept: String? = null + override var inline: Int? by MsgFieldDelegate(PresenceIndices.inline) { null } + override var concept: String? by MsgFieldDelegate(PresenceIndices.concept) { null } override var requires: List by MsgFieldDelegate { mutableListOf() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (inline?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) (concept?.hashCode() ?: 0) else 0 + result = 31 * result + requires.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ProtoWithKeywordsInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && inline != other.inline) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && concept != other.concept) return false + if (requires != other.requires) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.ProtoWithKeywords(") + if (presenceMask[0]) { + appendLine("${nextIndentString}inline=${inline},") + } else { + appendLine("${nextIndentString}inline=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}concept=${concept},") + } else { + appendLine("${nextIndentString}concept=,") + } + + appendLine("${nextIndentString}requires=${requires},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.ProtoWithKeywords): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1154,6 +3391,346 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.edit override var defaultString: String by MsgFieldDelegate(PresenceIndices.defaultString) { "Rosebud" } override var defaultBytes: ByteArray by MsgFieldDelegate(PresenceIndices.defaultBytes) { BytesDefaults.defaultBytes } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) requiredInt32.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) requiredInt64.hashCode() else 0 + result = 31 * result + if (presenceMask[2]) requiredUint32.hashCode() else 0 + result = 31 * result + if (presenceMask[3]) requiredUint64.hashCode() else 0 + result = 31 * result + if (presenceMask[4]) requiredSint32.hashCode() else 0 + result = 31 * result + if (presenceMask[5]) requiredSint64.hashCode() else 0 + result = 31 * result + if (presenceMask[6]) requiredFixed32.hashCode() else 0 + result = 31 * result + if (presenceMask[7]) requiredFixed64.hashCode() else 0 + result = 31 * result + if (presenceMask[8]) requiredSfixed32.hashCode() else 0 + result = 31 * result + if (presenceMask[9]) requiredSfixed64.hashCode() else 0 + result = 31 * result + if (presenceMask[10]) requiredFloat.hashCode() else 0 + result = 31 * result + if (presenceMask[11]) requiredDouble.hashCode() else 0 + result = 31 * result + if (presenceMask[12]) requiredBool.hashCode() else 0 + result = 31 * result + if (presenceMask[13]) requiredString.hashCode() else 0 + result = 31 * result + if (presenceMask[14]) requiredBytes.contentHashCode() else 0 + result = 31 * result + if (presenceMask[15]) requiredNestedMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[16]) requiredForeignMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[17]) requiredNestedEnum.hashCode() else 0 + result = 31 * result + if (presenceMask[18]) requiredForeignEnum.hashCode() else 0 + result = 31 * result + if (presenceMask[19]) requiredStringPiece.hashCode() else 0 + result = 31 * result + if (presenceMask[20]) requiredCord.hashCode() else 0 + result = 31 * result + if (presenceMask[21]) recursiveMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[22]) optionalRecursiveMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[23]) data.hashCode() else 0 + result = 31 * result + if (presenceMask[24]) defaultInt32.hashCode() else 0 + result = 31 * result + if (presenceMask[25]) defaultInt64.hashCode() else 0 + result = 31 * result + if (presenceMask[26]) defaultUint32.hashCode() else 0 + result = 31 * result + if (presenceMask[27]) defaultUint64.hashCode() else 0 + result = 31 * result + if (presenceMask[28]) defaultSint32.hashCode() else 0 + result = 31 * result + if (presenceMask[29]) defaultSint64.hashCode() else 0 + result = 31 * result + if (presenceMask[30]) defaultFixed32.hashCode() else 0 + result = 31 * result + if (presenceMask[31]) defaultFixed64.hashCode() else 0 + result = 31 * result + if (presenceMask[32]) defaultSfixed32.hashCode() else 0 + result = 31 * result + if (presenceMask[33]) defaultSfixed64.hashCode() else 0 + result = 31 * result + if (presenceMask[34]) defaultFloat.hashCode() else 0 + result = 31 * result + if (presenceMask[35]) defaultDouble.hashCode() else 0 + result = 31 * result + if (presenceMask[36]) defaultBool.hashCode() else 0 + result = 31 * result + if (presenceMask[37]) defaultString.hashCode() else 0 + result = 31 * result + if (presenceMask[38]) defaultBytes.contentHashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as TestAllRequiredTypesProto2Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && requiredInt32 != other.requiredInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && requiredInt64 != other.requiredInt64) return false + if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && requiredUint32 != other.requiredUint32) return false + if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && requiredUint64 != other.requiredUint64) return false + if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && requiredSint32 != other.requiredSint32) return false + if (presenceMask[5] != other.presenceMask[5] || presenceMask[5] && requiredSint64 != other.requiredSint64) return false + if (presenceMask[6] != other.presenceMask[6] || presenceMask[6] && requiredFixed32 != other.requiredFixed32) return false + if (presenceMask[7] != other.presenceMask[7] || presenceMask[7] && requiredFixed64 != other.requiredFixed64) return false + if (presenceMask[8] != other.presenceMask[8] || presenceMask[8] && requiredSfixed32 != other.requiredSfixed32) return false + if (presenceMask[9] != other.presenceMask[9] || presenceMask[9] && requiredSfixed64 != other.requiredSfixed64) return false + if (presenceMask[10] != other.presenceMask[10] || presenceMask[10] && requiredFloat != other.requiredFloat) return false + if (presenceMask[11] != other.presenceMask[11] || presenceMask[11] && requiredDouble != other.requiredDouble) return false + if (presenceMask[12] != other.presenceMask[12] || presenceMask[12] && requiredBool != other.requiredBool) return false + if (presenceMask[13] != other.presenceMask[13] || presenceMask[13] && requiredString != other.requiredString) return false + if (presenceMask[14] != other.presenceMask[14] || presenceMask[14] && !requiredBytes.contentEquals(other.requiredBytes)) return false + if (presenceMask[15] != other.presenceMask[15] || presenceMask[15] && requiredNestedMessage != other.requiredNestedMessage) return false + if (presenceMask[16] != other.presenceMask[16] || presenceMask[16] && requiredForeignMessage != other.requiredForeignMessage) return false + if (presenceMask[17] != other.presenceMask[17] || presenceMask[17] && requiredNestedEnum != other.requiredNestedEnum) return false + if (presenceMask[18] != other.presenceMask[18] || presenceMask[18] && requiredForeignEnum != other.requiredForeignEnum) return false + if (presenceMask[19] != other.presenceMask[19] || presenceMask[19] && requiredStringPiece != other.requiredStringPiece) return false + if (presenceMask[20] != other.presenceMask[20] || presenceMask[20] && requiredCord != other.requiredCord) return false + if (presenceMask[21] != other.presenceMask[21] || presenceMask[21] && recursiveMessage != other.recursiveMessage) return false + if (presenceMask[22] != other.presenceMask[22] || presenceMask[22] && optionalRecursiveMessage != other.optionalRecursiveMessage) return false + if (presenceMask[23] != other.presenceMask[23] || presenceMask[23] && data != other.data) return false + if (presenceMask[24] != other.presenceMask[24] || presenceMask[24] && defaultInt32 != other.defaultInt32) return false + if (presenceMask[25] != other.presenceMask[25] || presenceMask[25] && defaultInt64 != other.defaultInt64) return false + if (presenceMask[26] != other.presenceMask[26] || presenceMask[26] && defaultUint32 != other.defaultUint32) return false + if (presenceMask[27] != other.presenceMask[27] || presenceMask[27] && defaultUint64 != other.defaultUint64) return false + if (presenceMask[28] != other.presenceMask[28] || presenceMask[28] && defaultSint32 != other.defaultSint32) return false + if (presenceMask[29] != other.presenceMask[29] || presenceMask[29] && defaultSint64 != other.defaultSint64) return false + if (presenceMask[30] != other.presenceMask[30] || presenceMask[30] && defaultFixed32 != other.defaultFixed32) return false + if (presenceMask[31] != other.presenceMask[31] || presenceMask[31] && defaultFixed64 != other.defaultFixed64) return false + if (presenceMask[32] != other.presenceMask[32] || presenceMask[32] && defaultSfixed32 != other.defaultSfixed32) return false + if (presenceMask[33] != other.presenceMask[33] || presenceMask[33] && defaultSfixed64 != other.defaultSfixed64) return false + if (presenceMask[34] != other.presenceMask[34] || presenceMask[34] && defaultFloat != other.defaultFloat) return false + if (presenceMask[35] != other.presenceMask[35] || presenceMask[35] && defaultDouble != other.defaultDouble) return false + if (presenceMask[36] != other.presenceMask[36] || presenceMask[36] && defaultBool != other.defaultBool) return false + if (presenceMask[37] != other.presenceMask[37] || presenceMask[37] && defaultString != other.defaultString) return false + if (presenceMask[38] != other.presenceMask[38] || presenceMask[38] && !defaultBytes.contentEquals(other.defaultBytes)) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2(") + if (presenceMask[0]) { + appendLine("${nextIndentString}requiredInt32=${requiredInt32},") + } else { + appendLine("${nextIndentString}requiredInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}requiredInt64=${requiredInt64},") + } else { + appendLine("${nextIndentString}requiredInt64=,") + } + + if (presenceMask[2]) { + appendLine("${nextIndentString}requiredUint32=${requiredUint32},") + } else { + appendLine("${nextIndentString}requiredUint32=,") + } + + if (presenceMask[3]) { + appendLine("${nextIndentString}requiredUint64=${requiredUint64},") + } else { + appendLine("${nextIndentString}requiredUint64=,") + } + + if (presenceMask[4]) { + appendLine("${nextIndentString}requiredSint32=${requiredSint32},") + } else { + appendLine("${nextIndentString}requiredSint32=,") + } + + if (presenceMask[5]) { + appendLine("${nextIndentString}requiredSint64=${requiredSint64},") + } else { + appendLine("${nextIndentString}requiredSint64=,") + } + + if (presenceMask[6]) { + appendLine("${nextIndentString}requiredFixed32=${requiredFixed32},") + } else { + appendLine("${nextIndentString}requiredFixed32=,") + } + + if (presenceMask[7]) { + appendLine("${nextIndentString}requiredFixed64=${requiredFixed64},") + } else { + appendLine("${nextIndentString}requiredFixed64=,") + } + + if (presenceMask[8]) { + appendLine("${nextIndentString}requiredSfixed32=${requiredSfixed32},") + } else { + appendLine("${nextIndentString}requiredSfixed32=,") + } + + if (presenceMask[9]) { + appendLine("${nextIndentString}requiredSfixed64=${requiredSfixed64},") + } else { + appendLine("${nextIndentString}requiredSfixed64=,") + } + + if (presenceMask[10]) { + appendLine("${nextIndentString}requiredFloat=${requiredFloat},") + } else { + appendLine("${nextIndentString}requiredFloat=,") + } + + if (presenceMask[11]) { + appendLine("${nextIndentString}requiredDouble=${requiredDouble},") + } else { + appendLine("${nextIndentString}requiredDouble=,") + } + + if (presenceMask[12]) { + appendLine("${nextIndentString}requiredBool=${requiredBool},") + } else { + appendLine("${nextIndentString}requiredBool=,") + } + + if (presenceMask[13]) { + appendLine("${nextIndentString}requiredString=${requiredString},") + } else { + appendLine("${nextIndentString}requiredString=,") + } + + if (presenceMask[14]) { + appendLine("${nextIndentString}requiredBytes=${requiredBytes.contentToString()},") + } else { + appendLine("${nextIndentString}requiredBytes=,") + } + + if (presenceMask[15]) { + appendLine("${nextIndentString}requiredNestedMessage=${requiredNestedMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}requiredNestedMessage=,") + } + + if (presenceMask[16]) { + appendLine("${nextIndentString}requiredForeignMessage=${requiredForeignMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}requiredForeignMessage=,") + } + + if (presenceMask[17]) { + appendLine("${nextIndentString}requiredNestedEnum=${requiredNestedEnum},") + } else { + appendLine("${nextIndentString}requiredNestedEnum=,") + } + + if (presenceMask[18]) { + appendLine("${nextIndentString}requiredForeignEnum=${requiredForeignEnum},") + } else { + appendLine("${nextIndentString}requiredForeignEnum=,") + } + + if (presenceMask[19]) { + appendLine("${nextIndentString}requiredStringPiece=${requiredStringPiece},") + } else { + appendLine("${nextIndentString}requiredStringPiece=,") + } + + if (presenceMask[20]) { + appendLine("${nextIndentString}requiredCord=${requiredCord},") + } else { + appendLine("${nextIndentString}requiredCord=,") + } + + if (presenceMask[21]) { + appendLine("${nextIndentString}recursiveMessage=${recursiveMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}recursiveMessage=,") + } + + if (presenceMask[22]) { + appendLine("${nextIndentString}optionalRecursiveMessage=${optionalRecursiveMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalRecursiveMessage=,") + } + + if (presenceMask[23]) { + appendLine("${nextIndentString}data=${data.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}data=,") + } + + if (presenceMask[24]) { + appendLine("${nextIndentString}defaultInt32=${defaultInt32},") + } else { + appendLine("${nextIndentString}defaultInt32=,") + } + + if (presenceMask[25]) { + appendLine("${nextIndentString}defaultInt64=${defaultInt64},") + } else { + appendLine("${nextIndentString}defaultInt64=,") + } + + if (presenceMask[26]) { + appendLine("${nextIndentString}defaultUint32=${defaultUint32},") + } else { + appendLine("${nextIndentString}defaultUint32=,") + } + + if (presenceMask[27]) { + appendLine("${nextIndentString}defaultUint64=${defaultUint64},") + } else { + appendLine("${nextIndentString}defaultUint64=,") + } + + if (presenceMask[28]) { + appendLine("${nextIndentString}defaultSint32=${defaultSint32},") + } else { + appendLine("${nextIndentString}defaultSint32=,") + } + + if (presenceMask[29]) { + appendLine("${nextIndentString}defaultSint64=${defaultSint64},") + } else { + appendLine("${nextIndentString}defaultSint64=,") + } + + if (presenceMask[30]) { + appendLine("${nextIndentString}defaultFixed32=${defaultFixed32},") + } else { + appendLine("${nextIndentString}defaultFixed32=,") + } + + if (presenceMask[31]) { + appendLine("${nextIndentString}defaultFixed64=${defaultFixed64},") + } else { + appendLine("${nextIndentString}defaultFixed64=,") + } + + if (presenceMask[32]) { + appendLine("${nextIndentString}defaultSfixed32=${defaultSfixed32},") + } else { + appendLine("${nextIndentString}defaultSfixed32=,") + } + + if (presenceMask[33]) { + appendLine("${nextIndentString}defaultSfixed64=${defaultSfixed64},") + } else { + appendLine("${nextIndentString}defaultSfixed64=,") + } + + if (presenceMask[34]) { + appendLine("${nextIndentString}defaultFloat=${defaultFloat},") + } else { + appendLine("${nextIndentString}defaultFloat=,") + } + + if (presenceMask[35]) { + appendLine("${nextIndentString}defaultDouble=${defaultDouble},") + } else { + appendLine("${nextIndentString}defaultDouble=,") + } + + if (presenceMask[36]) { + appendLine("${nextIndentString}defaultBool=${defaultBool},") + } else { + appendLine("${nextIndentString}defaultBool=,") + } + + if (presenceMask[37]) { + appendLine("${nextIndentString}defaultString=${defaultString},") + } else { + appendLine("${nextIndentString}defaultString=,") + } + + if (presenceMask[38]) { + appendLine("${nextIndentString}defaultBytes=${defaultBytes.contentToString()},") + } else { + appendLine("${nextIndentString}defaultBytes=,") + } + + append("${indentString})") + } + } + class NestedMessageInternal: com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedMessage, kotlinx.rpc.protobuf.internal.InternalMessage(fieldsWithPresence = 3) { private object PresenceIndices { const val a: Int = 0 @@ -1168,6 +3745,58 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.edit override var corecursive: com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2 by MsgFieldDelegate(PresenceIndices.corecursive) { com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2Internal() } override var optionalCorecursive: com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2 by MsgFieldDelegate(PresenceIndices.optionalCorecursive) { com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2Internal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) a.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) corecursive.hashCode() else 0 + result = 31 * result + if (presenceMask[2]) optionalCorecursive.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as NestedMessageInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && a != other.a) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && corecursive != other.corecursive) return false + if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && optionalCorecursive != other.optionalCorecursive) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedMessage(") + if (presenceMask[0]) { + appendLine("${nextIndentString}a=${a},") + } else { + appendLine("${nextIndentString}a=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}corecursive=${corecursive.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}corecursive=,") + } + + if (presenceMask[2]) { + appendLine("${nextIndentString}optionalCorecursive=${optionalCorecursive.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalCorecursive=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedMessage): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1208,6 +3837,50 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.edit override var groupInt32: Int by MsgFieldDelegate(PresenceIndices.groupInt32) { 0 } override var groupUint32: UInt by MsgFieldDelegate(PresenceIndices.groupUint32) { 0u } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) groupInt32.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) groupUint32.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as DataInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.Data(") + if (presenceMask[0]) { + appendLine("${nextIndentString}groupInt32=${groupInt32},") + } else { + appendLine("${nextIndentString}groupInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}groupUint32=${groupUint32},") + } else { + appendLine("${nextIndentString}groupUint32=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -1216,6 +3889,34 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.edit @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MessageSetCorrectInternal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrect(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrect): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1254,6 +3955,41 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.edit override var str: String by MsgFieldDelegate(PresenceIndices.str) { "" } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) str.hashCode() else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MessageSetCorrectExtension1Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && str != other.str) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1(") + if (presenceMask[0]) { + appendLine("${nextIndentString}str=${str},") + } else { + appendLine("${nextIndentString}str=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1292,6 +4028,41 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.edit override var i: Int by MsgFieldDelegate(PresenceIndices.i) { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) i.hashCode() else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MessageSetCorrectExtension2Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && i != other.i) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2(") + if (presenceMask[0]) { + appendLine("${nextIndentString}i=${i},") + } else { + appendLine("${nextIndentString}i=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1354,10 +4125,80 @@ class TestLargeOneofInternal: com.google.protobuf_test_messages.editions.proto2. override var largeOneof: com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.LargeOneof? = null + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return (largeOneof?.oneOfHashCode() ?: 0) + } + + fun com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.LargeOneof.oneOfHashCode(): kotlin.Int { + val offset = when (this) { + is com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.LargeOneof.A1 -> 0 + is com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.LargeOneof.A2 -> 1 + is com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.LargeOneof.A3 -> 2 + is com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.LargeOneof.A4 -> 3 + is com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.LargeOneof.A5 -> 4 + } + + return hashCode() + offset + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as TestLargeOneofInternal + other.checkRequiredFields() + if (largeOneof != other.largeOneof) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestLargeOneof(") + appendLine("${nextIndentString}largeOneof=${largeOneof},") + append("${indentString})") + } + } + class A1Internal: com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.A1, kotlinx.rpc.protobuf.internal.InternalMessage(fieldsWithPresence = 0) { @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as A1Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.A1(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.A1): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1390,6 +4231,34 @@ class TestLargeOneofInternal: com.google.protobuf_test_messages.editions.proto2. @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as A2Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.A2(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.A2): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1422,6 +4291,34 @@ class TestLargeOneofInternal: com.google.protobuf_test_messages.editions.proto2. @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as A3Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.A3(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.A3): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1454,6 +4351,34 @@ class TestLargeOneofInternal: com.google.protobuf_test_messages.editions.proto2. @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as A4Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.A4(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.A4): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1486,6 +4411,34 @@ class TestLargeOneofInternal: com.google.protobuf_test_messages.editions.proto2. @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as A5Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.A5(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto2.TestLargeOneof.A5): kotlinx.rpc.protobuf.input.stream.InputStream { diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto3/TestMessagesProto3Editions.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto3/TestMessagesProto3Editions.kt index 0b25ee4cf..a16fe17d9 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto3/TestMessagesProto3Editions.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto3/TestMessagesProto3Editions.kt @@ -229,16 +229,16 @@ interface TestAllTypesProto3 { } sealed class NestedEnum(open val number: Int) { - object FOO: NestedEnum(number = 0) + data object FOO: NestedEnum(number = 0) - object BAR: NestedEnum(number = 1) + data object BAR: NestedEnum(number = 1) - object BAZ: NestedEnum(number = 2) + data object BAZ: NestedEnum(number = 2) /** * Intentionally negative. */ - object NEG: NestedEnum(number = -1) + data object NEG: NestedEnum(number = -1) data class UNRECOGNIZED(override val number: Int): NestedEnum(number) @@ -248,11 +248,11 @@ interface TestAllTypesProto3 { } sealed class AliasedEnum(open val number: Int) { - object ALIAS_FOO: AliasedEnum(number = 0) + data object ALIAS_FOO: AliasedEnum(number = 0) - object ALIAS_BAR: AliasedEnum(number = 1) + data object ALIAS_BAR: AliasedEnum(number = 1) - object ALIAS_BAZ: AliasedEnum(number = 2) + data object ALIAS_BAZ: AliasedEnum(number = 2) data class UNRECOGNIZED(override val number: Int): AliasedEnum(number) @@ -285,9 +285,9 @@ interface NullHypothesisProto3 { @kotlinx.rpc.grpc.codec.WithCodec(com.google.protobuf_test_messages.editions.proto3.EnumOnlyProto3Internal.CODEC::class) interface EnumOnlyProto3 { sealed class Bool(open val number: Int) { - object kFalse: Bool(number = 0) + data object kFalse: Bool(number = 0) - object kTrue: Bool(number = 1) + data object kTrue: Bool(number = 1) data class UNRECOGNIZED(override val number: Int): Bool(number) @@ -300,11 +300,11 @@ interface EnumOnlyProto3 { } sealed class ForeignEnum(open val number: Int) { - object FOREIGN_FOO: ForeignEnum(number = 0) + data object FOREIGN_FOO: ForeignEnum(number = 0) - object FOREIGN_BAR: ForeignEnum(number = 1) + data object FOREIGN_BAR: ForeignEnum(number = 1) - object FOREIGN_BAZ: ForeignEnum(number = 2) + data object FOREIGN_BAZ: ForeignEnum(number = 2) data class UNRECOGNIZED(override val number: Int): ForeignEnum(number) diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto3/_rpc_internal/TestMessagesProto3Editions.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto3/_rpc_internal/TestMessagesProto3Editions.kt index a612d1155..a215009b1 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto3/_rpc_internal/TestMessagesProto3Editions.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto3/_rpc_internal/TestMessagesProto3Editions.kt @@ -174,6 +174,567 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro override var FieldName18__: Int by MsgFieldDelegate { 0 } override var oneofField: com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.OneofField? = null + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = optionalInt32.hashCode() + result = 31 * result + optionalInt64.hashCode() + result = 31 * result + optionalUint32.hashCode() + result = 31 * result + optionalUint64.hashCode() + result = 31 * result + optionalSint32.hashCode() + result = 31 * result + optionalSint64.hashCode() + result = 31 * result + optionalFixed32.hashCode() + result = 31 * result + optionalFixed64.hashCode() + result = 31 * result + optionalSfixed32.hashCode() + result = 31 * result + optionalSfixed64.hashCode() + result = 31 * result + optionalFloat.hashCode() + result = 31 * result + optionalDouble.hashCode() + result = 31 * result + optionalBool.hashCode() + result = 31 * result + optionalString.hashCode() + result = 31 * result + optionalBytes.contentHashCode() + result = 31 * result + if (presenceMask[0]) optionalNestedMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) optionalForeignMessage.hashCode() else 0 + result = 31 * result + optionalNestedEnum.hashCode() + result = 31 * result + optionalForeignEnum.hashCode() + result = 31 * result + optionalAliasedEnum.hashCode() + result = 31 * result + optionalStringPiece.hashCode() + result = 31 * result + optionalCord.hashCode() + result = 31 * result + if (presenceMask[2]) recursiveMessage.hashCode() else 0 + result = 31 * result + repeatedInt32.hashCode() + result = 31 * result + repeatedInt64.hashCode() + result = 31 * result + repeatedUint32.hashCode() + result = 31 * result + repeatedUint64.hashCode() + result = 31 * result + repeatedSint32.hashCode() + result = 31 * result + repeatedSint64.hashCode() + result = 31 * result + repeatedFixed32.hashCode() + result = 31 * result + repeatedFixed64.hashCode() + result = 31 * result + repeatedSfixed32.hashCode() + result = 31 * result + repeatedSfixed64.hashCode() + result = 31 * result + repeatedFloat.hashCode() + result = 31 * result + repeatedDouble.hashCode() + result = 31 * result + repeatedBool.hashCode() + result = 31 * result + repeatedString.hashCode() + result = 31 * result + repeatedBytes.hashCode() + result = 31 * result + repeatedNestedMessage.hashCode() + result = 31 * result + repeatedForeignMessage.hashCode() + result = 31 * result + repeatedNestedEnum.hashCode() + result = 31 * result + repeatedForeignEnum.hashCode() + result = 31 * result + repeatedStringPiece.hashCode() + result = 31 * result + repeatedCord.hashCode() + result = 31 * result + packedInt32.hashCode() + result = 31 * result + packedInt64.hashCode() + result = 31 * result + packedUint32.hashCode() + result = 31 * result + packedUint64.hashCode() + result = 31 * result + packedSint32.hashCode() + result = 31 * result + packedSint64.hashCode() + result = 31 * result + packedFixed32.hashCode() + result = 31 * result + packedFixed64.hashCode() + result = 31 * result + packedSfixed32.hashCode() + result = 31 * result + packedSfixed64.hashCode() + result = 31 * result + packedFloat.hashCode() + result = 31 * result + packedDouble.hashCode() + result = 31 * result + packedBool.hashCode() + result = 31 * result + packedNestedEnum.hashCode() + result = 31 * result + unpackedInt32.hashCode() + result = 31 * result + unpackedInt64.hashCode() + result = 31 * result + unpackedUint32.hashCode() + result = 31 * result + unpackedUint64.hashCode() + result = 31 * result + unpackedSint32.hashCode() + result = 31 * result + unpackedSint64.hashCode() + result = 31 * result + unpackedFixed32.hashCode() + result = 31 * result + unpackedFixed64.hashCode() + result = 31 * result + unpackedSfixed32.hashCode() + result = 31 * result + unpackedSfixed64.hashCode() + result = 31 * result + unpackedFloat.hashCode() + result = 31 * result + unpackedDouble.hashCode() + result = 31 * result + unpackedBool.hashCode() + result = 31 * result + unpackedNestedEnum.hashCode() + result = 31 * result + mapInt32Int32.hashCode() + result = 31 * result + mapInt64Int64.hashCode() + result = 31 * result + mapUint32Uint32.hashCode() + result = 31 * result + mapUint64Uint64.hashCode() + result = 31 * result + mapSint32Sint32.hashCode() + result = 31 * result + mapSint64Sint64.hashCode() + result = 31 * result + mapFixed32Fixed32.hashCode() + result = 31 * result + mapFixed64Fixed64.hashCode() + result = 31 * result + mapSfixed32Sfixed32.hashCode() + result = 31 * result + mapSfixed64Sfixed64.hashCode() + result = 31 * result + mapInt32Float.hashCode() + result = 31 * result + mapInt32Double.hashCode() + result = 31 * result + mapBoolBool.hashCode() + result = 31 * result + mapStringString.hashCode() + result = 31 * result + mapStringBytes.hashCode() + result = 31 * result + mapStringNestedMessage.hashCode() + result = 31 * result + mapStringForeignMessage.hashCode() + result = 31 * result + mapStringNestedEnum.hashCode() + result = 31 * result + mapStringForeignEnum.hashCode() + result = 31 * result + if (presenceMask[3]) optionalBoolWrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[4]) optionalInt32Wrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[5]) optionalInt64Wrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[6]) optionalUint32Wrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[7]) optionalUint64Wrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[8]) optionalFloatWrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[9]) optionalDoubleWrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[10]) optionalStringWrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[11]) optionalBytesWrapper.hashCode() else 0 + result = 31 * result + repeatedBoolWrapper.hashCode() + result = 31 * result + repeatedInt32Wrapper.hashCode() + result = 31 * result + repeatedInt64Wrapper.hashCode() + result = 31 * result + repeatedUint32Wrapper.hashCode() + result = 31 * result + repeatedUint64Wrapper.hashCode() + result = 31 * result + repeatedFloatWrapper.hashCode() + result = 31 * result + repeatedDoubleWrapper.hashCode() + result = 31 * result + repeatedStringWrapper.hashCode() + result = 31 * result + repeatedBytesWrapper.hashCode() + result = 31 * result + if (presenceMask[12]) optionalDuration.hashCode() else 0 + result = 31 * result + if (presenceMask[13]) optionalTimestamp.hashCode() else 0 + result = 31 * result + if (presenceMask[14]) optionalFieldMask.hashCode() else 0 + result = 31 * result + if (presenceMask[15]) optionalStruct.hashCode() else 0 + result = 31 * result + if (presenceMask[16]) optionalAny.hashCode() else 0 + result = 31 * result + if (presenceMask[17]) optionalValue.hashCode() else 0 + result = 31 * result + optionalNullValue.hashCode() + result = 31 * result + repeatedDuration.hashCode() + result = 31 * result + repeatedTimestamp.hashCode() + result = 31 * result + repeatedFieldmask.hashCode() + result = 31 * result + repeatedStruct.hashCode() + result = 31 * result + repeatedAny.hashCode() + result = 31 * result + repeatedValue.hashCode() + result = 31 * result + repeatedListValue.hashCode() + result = 31 * result + fieldname1.hashCode() + result = 31 * result + fieldName2.hashCode() + result = 31 * result + FieldName3.hashCode() + result = 31 * result + field_Name4_.hashCode() + result = 31 * result + field0name5.hashCode() + result = 31 * result + field_0Name6.hashCode() + result = 31 * result + fieldName7.hashCode() + result = 31 * result + FieldName8.hashCode() + result = 31 * result + field_Name9.hashCode() + result = 31 * result + Field_Name10.hashCode() + result = 31 * result + FIELD_NAME11.hashCode() + result = 31 * result + FIELDName12.hashCode() + result = 31 * result + _FieldName13.hashCode() + result = 31 * result + __FieldName14.hashCode() + result = 31 * result + field_Name15.hashCode() + result = 31 * result + field__Name16.hashCode() + result = 31 * result + fieldName17__.hashCode() + result = 31 * result + FieldName18__.hashCode() + result = 31 * result + (oneofField?.oneOfHashCode() ?: 0) + return result + } + + fun com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.OneofField.oneOfHashCode(): kotlin.Int { + val offset = when (this) { + is com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.OneofField.OneofUint32 -> 0 + is com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.OneofField.OneofNestedMessage -> 1 + is com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.OneofField.OneofString -> 2 + is com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.OneofField.OneofBytes -> 3 + is com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.OneofField.OneofBool -> 4 + is com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.OneofField.OneofUint64 -> 5 + is com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.OneofField.OneofFloat -> 6 + is com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.OneofField.OneofDouble -> 7 + is com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.OneofField.OneofEnum -> 8 + is com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.OneofField.OneofNullValue -> 9 + } + + return hashCode() + offset + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as TestAllTypesProto3Internal + other.checkRequiredFields() + if (optionalInt32 != other.optionalInt32) return false + if (optionalInt64 != other.optionalInt64) return false + if (optionalUint32 != other.optionalUint32) return false + if (optionalUint64 != other.optionalUint64) return false + if (optionalSint32 != other.optionalSint32) return false + if (optionalSint64 != other.optionalSint64) return false + if (optionalFixed32 != other.optionalFixed32) return false + if (optionalFixed64 != other.optionalFixed64) return false + if (optionalSfixed32 != other.optionalSfixed32) return false + if (optionalSfixed64 != other.optionalSfixed64) return false + if (optionalFloat != other.optionalFloat) return false + if (optionalDouble != other.optionalDouble) return false + if (optionalBool != other.optionalBool) return false + if (optionalString != other.optionalString) return false + if (!optionalBytes.contentEquals(other.optionalBytes)) return false + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && optionalNestedMessage != other.optionalNestedMessage) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && optionalForeignMessage != other.optionalForeignMessage) return false + if (optionalNestedEnum != other.optionalNestedEnum) return false + if (optionalForeignEnum != other.optionalForeignEnum) return false + if (optionalAliasedEnum != other.optionalAliasedEnum) return false + if (optionalStringPiece != other.optionalStringPiece) return false + if (optionalCord != other.optionalCord) return false + if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && recursiveMessage != other.recursiveMessage) return false + if (repeatedInt32 != other.repeatedInt32) return false + if (repeatedInt64 != other.repeatedInt64) return false + if (repeatedUint32 != other.repeatedUint32) return false + if (repeatedUint64 != other.repeatedUint64) return false + if (repeatedSint32 != other.repeatedSint32) return false + if (repeatedSint64 != other.repeatedSint64) return false + if (repeatedFixed32 != other.repeatedFixed32) return false + if (repeatedFixed64 != other.repeatedFixed64) return false + if (repeatedSfixed32 != other.repeatedSfixed32) return false + if (repeatedSfixed64 != other.repeatedSfixed64) return false + if (repeatedFloat != other.repeatedFloat) return false + if (repeatedDouble != other.repeatedDouble) return false + if (repeatedBool != other.repeatedBool) return false + if (repeatedString != other.repeatedString) return false + if (repeatedBytes != other.repeatedBytes) return false + if (repeatedNestedMessage != other.repeatedNestedMessage) return false + if (repeatedForeignMessage != other.repeatedForeignMessage) return false + if (repeatedNestedEnum != other.repeatedNestedEnum) return false + if (repeatedForeignEnum != other.repeatedForeignEnum) return false + if (repeatedStringPiece != other.repeatedStringPiece) return false + if (repeatedCord != other.repeatedCord) return false + if (packedInt32 != other.packedInt32) return false + if (packedInt64 != other.packedInt64) return false + if (packedUint32 != other.packedUint32) return false + if (packedUint64 != other.packedUint64) return false + if (packedSint32 != other.packedSint32) return false + if (packedSint64 != other.packedSint64) return false + if (packedFixed32 != other.packedFixed32) return false + if (packedFixed64 != other.packedFixed64) return false + if (packedSfixed32 != other.packedSfixed32) return false + if (packedSfixed64 != other.packedSfixed64) return false + if (packedFloat != other.packedFloat) return false + if (packedDouble != other.packedDouble) return false + if (packedBool != other.packedBool) return false + if (packedNestedEnum != other.packedNestedEnum) return false + if (unpackedInt32 != other.unpackedInt32) return false + if (unpackedInt64 != other.unpackedInt64) return false + if (unpackedUint32 != other.unpackedUint32) return false + if (unpackedUint64 != other.unpackedUint64) return false + if (unpackedSint32 != other.unpackedSint32) return false + if (unpackedSint64 != other.unpackedSint64) return false + if (unpackedFixed32 != other.unpackedFixed32) return false + if (unpackedFixed64 != other.unpackedFixed64) return false + if (unpackedSfixed32 != other.unpackedSfixed32) return false + if (unpackedSfixed64 != other.unpackedSfixed64) return false + if (unpackedFloat != other.unpackedFloat) return false + if (unpackedDouble != other.unpackedDouble) return false + if (unpackedBool != other.unpackedBool) return false + if (unpackedNestedEnum != other.unpackedNestedEnum) return false + if (mapInt32Int32 != other.mapInt32Int32) return false + if (mapInt64Int64 != other.mapInt64Int64) return false + if (mapUint32Uint32 != other.mapUint32Uint32) return false + if (mapUint64Uint64 != other.mapUint64Uint64) return false + if (mapSint32Sint32 != other.mapSint32Sint32) return false + if (mapSint64Sint64 != other.mapSint64Sint64) return false + if (mapFixed32Fixed32 != other.mapFixed32Fixed32) return false + if (mapFixed64Fixed64 != other.mapFixed64Fixed64) return false + if (mapSfixed32Sfixed32 != other.mapSfixed32Sfixed32) return false + if (mapSfixed64Sfixed64 != other.mapSfixed64Sfixed64) return false + if (mapInt32Float != other.mapInt32Float) return false + if (mapInt32Double != other.mapInt32Double) return false + if (mapBoolBool != other.mapBoolBool) return false + if (mapStringString != other.mapStringString) return false + if (mapStringBytes != other.mapStringBytes) return false + if (mapStringNestedMessage != other.mapStringNestedMessage) return false + if (mapStringForeignMessage != other.mapStringForeignMessage) return false + if (mapStringNestedEnum != other.mapStringNestedEnum) return false + if (mapStringForeignEnum != other.mapStringForeignEnum) return false + if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && optionalBoolWrapper != other.optionalBoolWrapper) return false + if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && optionalInt32Wrapper != other.optionalInt32Wrapper) return false + if (presenceMask[5] != other.presenceMask[5] || presenceMask[5] && optionalInt64Wrapper != other.optionalInt64Wrapper) return false + if (presenceMask[6] != other.presenceMask[6] || presenceMask[6] && optionalUint32Wrapper != other.optionalUint32Wrapper) return false + if (presenceMask[7] != other.presenceMask[7] || presenceMask[7] && optionalUint64Wrapper != other.optionalUint64Wrapper) return false + if (presenceMask[8] != other.presenceMask[8] || presenceMask[8] && optionalFloatWrapper != other.optionalFloatWrapper) return false + if (presenceMask[9] != other.presenceMask[9] || presenceMask[9] && optionalDoubleWrapper != other.optionalDoubleWrapper) return false + if (presenceMask[10] != other.presenceMask[10] || presenceMask[10] && optionalStringWrapper != other.optionalStringWrapper) return false + if (presenceMask[11] != other.presenceMask[11] || presenceMask[11] && optionalBytesWrapper != other.optionalBytesWrapper) return false + if (repeatedBoolWrapper != other.repeatedBoolWrapper) return false + if (repeatedInt32Wrapper != other.repeatedInt32Wrapper) return false + if (repeatedInt64Wrapper != other.repeatedInt64Wrapper) return false + if (repeatedUint32Wrapper != other.repeatedUint32Wrapper) return false + if (repeatedUint64Wrapper != other.repeatedUint64Wrapper) return false + if (repeatedFloatWrapper != other.repeatedFloatWrapper) return false + if (repeatedDoubleWrapper != other.repeatedDoubleWrapper) return false + if (repeatedStringWrapper != other.repeatedStringWrapper) return false + if (repeatedBytesWrapper != other.repeatedBytesWrapper) return false + if (presenceMask[12] != other.presenceMask[12] || presenceMask[12] && optionalDuration != other.optionalDuration) return false + if (presenceMask[13] != other.presenceMask[13] || presenceMask[13] && optionalTimestamp != other.optionalTimestamp) return false + if (presenceMask[14] != other.presenceMask[14] || presenceMask[14] && optionalFieldMask != other.optionalFieldMask) return false + if (presenceMask[15] != other.presenceMask[15] || presenceMask[15] && optionalStruct != other.optionalStruct) return false + if (presenceMask[16] != other.presenceMask[16] || presenceMask[16] && optionalAny != other.optionalAny) return false + if (presenceMask[17] != other.presenceMask[17] || presenceMask[17] && optionalValue != other.optionalValue) return false + if (optionalNullValue != other.optionalNullValue) return false + if (repeatedDuration != other.repeatedDuration) return false + if (repeatedTimestamp != other.repeatedTimestamp) return false + if (repeatedFieldmask != other.repeatedFieldmask) return false + if (repeatedStruct != other.repeatedStruct) return false + if (repeatedAny != other.repeatedAny) return false + if (repeatedValue != other.repeatedValue) return false + if (repeatedListValue != other.repeatedListValue) return false + if (fieldname1 != other.fieldname1) return false + if (fieldName2 != other.fieldName2) return false + if (FieldName3 != other.FieldName3) return false + if (field_Name4_ != other.field_Name4_) return false + if (field0name5 != other.field0name5) return false + if (field_0Name6 != other.field_0Name6) return false + if (fieldName7 != other.fieldName7) return false + if (FieldName8 != other.FieldName8) return false + if (field_Name9 != other.field_Name9) return false + if (Field_Name10 != other.Field_Name10) return false + if (FIELD_NAME11 != other.FIELD_NAME11) return false + if (FIELDName12 != other.FIELDName12) return false + if (_FieldName13 != other._FieldName13) return false + if (__FieldName14 != other.__FieldName14) return false + if (field_Name15 != other.field_Name15) return false + if (field__Name16 != other.field__Name16) return false + if (fieldName17__ != other.fieldName17__) return false + if (FieldName18__ != other.FieldName18__) return false + if (oneofField != other.oneofField) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3(") + appendLine("${nextIndentString}optionalInt32=${optionalInt32},") + appendLine("${nextIndentString}optionalInt64=${optionalInt64},") + appendLine("${nextIndentString}optionalUint32=${optionalUint32},") + appendLine("${nextIndentString}optionalUint64=${optionalUint64},") + appendLine("${nextIndentString}optionalSint32=${optionalSint32},") + appendLine("${nextIndentString}optionalSint64=${optionalSint64},") + appendLine("${nextIndentString}optionalFixed32=${optionalFixed32},") + appendLine("${nextIndentString}optionalFixed64=${optionalFixed64},") + appendLine("${nextIndentString}optionalSfixed32=${optionalSfixed32},") + appendLine("${nextIndentString}optionalSfixed64=${optionalSfixed64},") + appendLine("${nextIndentString}optionalFloat=${optionalFloat},") + appendLine("${nextIndentString}optionalDouble=${optionalDouble},") + appendLine("${nextIndentString}optionalBool=${optionalBool},") + appendLine("${nextIndentString}optionalString=${optionalString},") + appendLine("${nextIndentString}optionalBytes=${optionalBytes.contentToString()},") + if (presenceMask[0]) { + appendLine("${nextIndentString}optionalNestedMessage=${optionalNestedMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalNestedMessage=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}optionalForeignMessage=${optionalForeignMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalForeignMessage=,") + } + + appendLine("${nextIndentString}optionalNestedEnum=${optionalNestedEnum},") + appendLine("${nextIndentString}optionalForeignEnum=${optionalForeignEnum},") + appendLine("${nextIndentString}optionalAliasedEnum=${optionalAliasedEnum},") + appendLine("${nextIndentString}optionalStringPiece=${optionalStringPiece},") + appendLine("${nextIndentString}optionalCord=${optionalCord},") + if (presenceMask[2]) { + appendLine("${nextIndentString}recursiveMessage=${recursiveMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}recursiveMessage=,") + } + + appendLine("${nextIndentString}repeatedInt32=${repeatedInt32},") + appendLine("${nextIndentString}repeatedInt64=${repeatedInt64},") + appendLine("${nextIndentString}repeatedUint32=${repeatedUint32},") + appendLine("${nextIndentString}repeatedUint64=${repeatedUint64},") + appendLine("${nextIndentString}repeatedSint32=${repeatedSint32},") + appendLine("${nextIndentString}repeatedSint64=${repeatedSint64},") + appendLine("${nextIndentString}repeatedFixed32=${repeatedFixed32},") + appendLine("${nextIndentString}repeatedFixed64=${repeatedFixed64},") + appendLine("${nextIndentString}repeatedSfixed32=${repeatedSfixed32},") + appendLine("${nextIndentString}repeatedSfixed64=${repeatedSfixed64},") + appendLine("${nextIndentString}repeatedFloat=${repeatedFloat},") + appendLine("${nextIndentString}repeatedDouble=${repeatedDouble},") + appendLine("${nextIndentString}repeatedBool=${repeatedBool},") + appendLine("${nextIndentString}repeatedString=${repeatedString},") + appendLine("${nextIndentString}repeatedBytes=${repeatedBytes},") + appendLine("${nextIndentString}repeatedNestedMessage=${repeatedNestedMessage},") + appendLine("${nextIndentString}repeatedForeignMessage=${repeatedForeignMessage},") + appendLine("${nextIndentString}repeatedNestedEnum=${repeatedNestedEnum},") + appendLine("${nextIndentString}repeatedForeignEnum=${repeatedForeignEnum},") + appendLine("${nextIndentString}repeatedStringPiece=${repeatedStringPiece},") + appendLine("${nextIndentString}repeatedCord=${repeatedCord},") + appendLine("${nextIndentString}packedInt32=${packedInt32},") + appendLine("${nextIndentString}packedInt64=${packedInt64},") + appendLine("${nextIndentString}packedUint32=${packedUint32},") + appendLine("${nextIndentString}packedUint64=${packedUint64},") + appendLine("${nextIndentString}packedSint32=${packedSint32},") + appendLine("${nextIndentString}packedSint64=${packedSint64},") + appendLine("${nextIndentString}packedFixed32=${packedFixed32},") + appendLine("${nextIndentString}packedFixed64=${packedFixed64},") + appendLine("${nextIndentString}packedSfixed32=${packedSfixed32},") + appendLine("${nextIndentString}packedSfixed64=${packedSfixed64},") + appendLine("${nextIndentString}packedFloat=${packedFloat},") + appendLine("${nextIndentString}packedDouble=${packedDouble},") + appendLine("${nextIndentString}packedBool=${packedBool},") + appendLine("${nextIndentString}packedNestedEnum=${packedNestedEnum},") + appendLine("${nextIndentString}unpackedInt32=${unpackedInt32},") + appendLine("${nextIndentString}unpackedInt64=${unpackedInt64},") + appendLine("${nextIndentString}unpackedUint32=${unpackedUint32},") + appendLine("${nextIndentString}unpackedUint64=${unpackedUint64},") + appendLine("${nextIndentString}unpackedSint32=${unpackedSint32},") + appendLine("${nextIndentString}unpackedSint64=${unpackedSint64},") + appendLine("${nextIndentString}unpackedFixed32=${unpackedFixed32},") + appendLine("${nextIndentString}unpackedFixed64=${unpackedFixed64},") + appendLine("${nextIndentString}unpackedSfixed32=${unpackedSfixed32},") + appendLine("${nextIndentString}unpackedSfixed64=${unpackedSfixed64},") + appendLine("${nextIndentString}unpackedFloat=${unpackedFloat},") + appendLine("${nextIndentString}unpackedDouble=${unpackedDouble},") + appendLine("${nextIndentString}unpackedBool=${unpackedBool},") + appendLine("${nextIndentString}unpackedNestedEnum=${unpackedNestedEnum},") + appendLine("${nextIndentString}mapInt32Int32=${mapInt32Int32},") + appendLine("${nextIndentString}mapInt64Int64=${mapInt64Int64},") + appendLine("${nextIndentString}mapUint32Uint32=${mapUint32Uint32},") + appendLine("${nextIndentString}mapUint64Uint64=${mapUint64Uint64},") + appendLine("${nextIndentString}mapSint32Sint32=${mapSint32Sint32},") + appendLine("${nextIndentString}mapSint64Sint64=${mapSint64Sint64},") + appendLine("${nextIndentString}mapFixed32Fixed32=${mapFixed32Fixed32},") + appendLine("${nextIndentString}mapFixed64Fixed64=${mapFixed64Fixed64},") + appendLine("${nextIndentString}mapSfixed32Sfixed32=${mapSfixed32Sfixed32},") + appendLine("${nextIndentString}mapSfixed64Sfixed64=${mapSfixed64Sfixed64},") + appendLine("${nextIndentString}mapInt32Float=${mapInt32Float},") + appendLine("${nextIndentString}mapInt32Double=${mapInt32Double},") + appendLine("${nextIndentString}mapBoolBool=${mapBoolBool},") + appendLine("${nextIndentString}mapStringString=${mapStringString},") + appendLine("${nextIndentString}mapStringBytes=${mapStringBytes},") + appendLine("${nextIndentString}mapStringNestedMessage=${mapStringNestedMessage},") + appendLine("${nextIndentString}mapStringForeignMessage=${mapStringForeignMessage},") + appendLine("${nextIndentString}mapStringNestedEnum=${mapStringNestedEnum},") + appendLine("${nextIndentString}mapStringForeignEnum=${mapStringForeignEnum},") + if (presenceMask[3]) { + appendLine("${nextIndentString}optionalBoolWrapper=${optionalBoolWrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalBoolWrapper=,") + } + + if (presenceMask[4]) { + appendLine("${nextIndentString}optionalInt32Wrapper=${optionalInt32Wrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalInt32Wrapper=,") + } + + if (presenceMask[5]) { + appendLine("${nextIndentString}optionalInt64Wrapper=${optionalInt64Wrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalInt64Wrapper=,") + } + + if (presenceMask[6]) { + appendLine("${nextIndentString}optionalUint32Wrapper=${optionalUint32Wrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalUint32Wrapper=,") + } + + if (presenceMask[7]) { + appendLine("${nextIndentString}optionalUint64Wrapper=${optionalUint64Wrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalUint64Wrapper=,") + } + + if (presenceMask[8]) { + appendLine("${nextIndentString}optionalFloatWrapper=${optionalFloatWrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalFloatWrapper=,") + } + + if (presenceMask[9]) { + appendLine("${nextIndentString}optionalDoubleWrapper=${optionalDoubleWrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalDoubleWrapper=,") + } + + if (presenceMask[10]) { + appendLine("${nextIndentString}optionalStringWrapper=${optionalStringWrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalStringWrapper=,") + } + + if (presenceMask[11]) { + appendLine("${nextIndentString}optionalBytesWrapper=${optionalBytesWrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalBytesWrapper=,") + } + + appendLine("${nextIndentString}repeatedBoolWrapper=${repeatedBoolWrapper},") + appendLine("${nextIndentString}repeatedInt32Wrapper=${repeatedInt32Wrapper},") + appendLine("${nextIndentString}repeatedInt64Wrapper=${repeatedInt64Wrapper},") + appendLine("${nextIndentString}repeatedUint32Wrapper=${repeatedUint32Wrapper},") + appendLine("${nextIndentString}repeatedUint64Wrapper=${repeatedUint64Wrapper},") + appendLine("${nextIndentString}repeatedFloatWrapper=${repeatedFloatWrapper},") + appendLine("${nextIndentString}repeatedDoubleWrapper=${repeatedDoubleWrapper},") + appendLine("${nextIndentString}repeatedStringWrapper=${repeatedStringWrapper},") + appendLine("${nextIndentString}repeatedBytesWrapper=${repeatedBytesWrapper},") + if (presenceMask[12]) { + appendLine("${nextIndentString}optionalDuration=${optionalDuration.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalDuration=,") + } + + if (presenceMask[13]) { + appendLine("${nextIndentString}optionalTimestamp=${optionalTimestamp.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalTimestamp=,") + } + + if (presenceMask[14]) { + appendLine("${nextIndentString}optionalFieldMask=${optionalFieldMask.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalFieldMask=,") + } + + if (presenceMask[15]) { + appendLine("${nextIndentString}optionalStruct=${optionalStruct.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalStruct=,") + } + + if (presenceMask[16]) { + appendLine("${nextIndentString}optionalAny=${optionalAny.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalAny=,") + } + + if (presenceMask[17]) { + appendLine("${nextIndentString}optionalValue=${optionalValue.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalValue=,") + } + + appendLine("${nextIndentString}optionalNullValue=${optionalNullValue},") + appendLine("${nextIndentString}repeatedDuration=${repeatedDuration},") + appendLine("${nextIndentString}repeatedTimestamp=${repeatedTimestamp},") + appendLine("${nextIndentString}repeatedFieldmask=${repeatedFieldmask},") + appendLine("${nextIndentString}repeatedStruct=${repeatedStruct},") + appendLine("${nextIndentString}repeatedAny=${repeatedAny},") + appendLine("${nextIndentString}repeatedValue=${repeatedValue},") + appendLine("${nextIndentString}repeatedListValue=${repeatedListValue},") + appendLine("${nextIndentString}fieldname1=${fieldname1},") + appendLine("${nextIndentString}fieldName2=${fieldName2},") + appendLine("${nextIndentString}FieldName3=${FieldName3},") + appendLine("${nextIndentString}field_Name4_=${field_Name4_},") + appendLine("${nextIndentString}field0name5=${field0name5},") + appendLine("${nextIndentString}field_0Name6=${field_0Name6},") + appendLine("${nextIndentString}fieldName7=${fieldName7},") + appendLine("${nextIndentString}FieldName8=${FieldName8},") + appendLine("${nextIndentString}field_Name9=${field_Name9},") + appendLine("${nextIndentString}Field_Name10=${Field_Name10},") + appendLine("${nextIndentString}FIELD_NAME11=${FIELD_NAME11},") + appendLine("${nextIndentString}FIELDName12=${FIELDName12},") + appendLine("${nextIndentString}_FieldName13=${_FieldName13},") + appendLine("${nextIndentString}__FieldName14=${__FieldName14},") + appendLine("${nextIndentString}field_Name15=${field_Name15},") + appendLine("${nextIndentString}field__Name16=${field__Name16},") + appendLine("${nextIndentString}fieldName17__=${fieldName17__},") + appendLine("${nextIndentString}FieldName18__=${FieldName18__},") + appendLine("${nextIndentString}oneofField=${oneofField},") + append("${indentString})") + } + } + class NestedMessageInternal: com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage, kotlinx.rpc.protobuf.internal.InternalMessage(fieldsWithPresence = 1) { private object PresenceIndices { const val corecursive: Int = 0 @@ -185,6 +746,45 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro override var a: Int by MsgFieldDelegate { 0 } override var corecursive: com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3 by MsgFieldDelegate(PresenceIndices.corecursive) { com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3Internal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = a.hashCode() + result = 31 * result + if (presenceMask[0]) corecursive.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as NestedMessageInternal + other.checkRequiredFields() + if (a != other.a) return false + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && corecursive != other.corecursive) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage(") + appendLine("${nextIndentString}a=${a},") + if (presenceMask[0]) { + appendLine("${nextIndentString}corecursive=${corecursive.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}corecursive=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -220,6 +820,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: Int by MsgFieldDelegate { 0 } var value: Int by MsgFieldDelegate { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32Int32EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapInt32Int32Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -231,6 +865,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: Long by MsgFieldDelegate { 0L } var value: Long by MsgFieldDelegate { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt64Int64EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapInt64Int64Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -242,6 +910,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: UInt by MsgFieldDelegate { 0u } var value: UInt by MsgFieldDelegate { 0u } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapUint32Uint32EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapUint32Uint32Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -253,6 +955,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: ULong by MsgFieldDelegate { 0uL } var value: ULong by MsgFieldDelegate { 0uL } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapUint64Uint64EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapUint64Uint64Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -264,6 +1000,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: Int by MsgFieldDelegate { 0 } var value: Int by MsgFieldDelegate { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSint32Sint32EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapSint32Sint32Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -275,6 +1045,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: Long by MsgFieldDelegate { 0L } var value: Long by MsgFieldDelegate { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSint64Sint64EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapSint64Sint64Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -286,6 +1090,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: UInt by MsgFieldDelegate { 0u } var value: UInt by MsgFieldDelegate { 0u } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapFixed32Fixed32EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -297,6 +1135,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: ULong by MsgFieldDelegate { 0uL } var value: ULong by MsgFieldDelegate { 0uL } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapFixed64Fixed64EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -308,6 +1180,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: Int by MsgFieldDelegate { 0 } var value: Int by MsgFieldDelegate { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSfixed32Sfixed32EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -319,6 +1225,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: Long by MsgFieldDelegate { 0L } var value: Long by MsgFieldDelegate { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSfixed64Sfixed64EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -330,6 +1270,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: Int by MsgFieldDelegate { 0 } var value: Float by MsgFieldDelegate { 0.0f } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32FloatEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapInt32FloatEntry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -341,6 +1315,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: Int by MsgFieldDelegate { 0 } var value: Double by MsgFieldDelegate { 0.0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32DoubleEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapInt32DoubleEntry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -352,6 +1360,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: Boolean by MsgFieldDelegate { false } var value: Boolean by MsgFieldDelegate { false } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapBoolBoolEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapBoolBoolEntry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -363,6 +1405,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: String by MsgFieldDelegate { "" } var value: String by MsgFieldDelegate { "" } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringStringEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapStringStringEntry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -374,6 +1450,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: String by MsgFieldDelegate { "" } var value: ByteArray by MsgFieldDelegate { byteArrayOf() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.contentHashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringBytesEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (!value.contentEquals(other.value)) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapStringBytesEntry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value.contentToString()},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -389,6 +1499,45 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: String by MsgFieldDelegate { "" } var value: com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedMessage by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3Internal.NestedMessageInternal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + if (presenceMask[0]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringNestedMessageEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapStringNestedMessageEntry(") + appendLine("${nextIndentString}key=${key},") + if (presenceMask[0]) { + appendLine("${nextIndentString}value=${value.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -404,6 +1553,45 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: String by MsgFieldDelegate { "" } var value: com.google.protobuf_test_messages.editions.proto3.ForeignMessage by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.editions.proto3.ForeignMessageInternal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + if (presenceMask[0]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringForeignMessageEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapStringForeignMessageEntry(") + appendLine("${nextIndentString}key=${key},") + if (presenceMask[0]) { + appendLine("${nextIndentString}value=${value.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -415,6 +1603,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: String by MsgFieldDelegate { "" } var value: com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedEnum by MsgFieldDelegate { com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.NestedEnum.FOO } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringNestedEnumEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapStringNestedEnumEntry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -426,6 +1648,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro var key: String by MsgFieldDelegate { "" } var value: com.google.protobuf_test_messages.editions.proto3.ForeignEnum by MsgFieldDelegate { com.google.protobuf_test_messages.editions.proto3.ForeignEnum.FOREIGN_FOO } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringForeignEnumEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.TestAllTypesProto3.MapStringForeignEnumEntry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -464,6 +1720,36 @@ class ForeignMessageInternal: com.google.protobuf_test_messages.editions.proto3. override var c: Int by MsgFieldDelegate { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return c.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ForeignMessageInternal + other.checkRequiredFields() + if (c != other.c) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.ForeignMessage(") + appendLine("${nextIndentString}c=${c},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto3.ForeignMessage): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -496,6 +1782,34 @@ class NullHypothesisProto3Internal: com.google.protobuf_test_messages.editions.p @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as NullHypothesisProto3Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.NullHypothesisProto3(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto3.NullHypothesisProto3): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -528,6 +1842,34 @@ class EnumOnlyProto3Internal: com.google.protobuf_test_messages.editions.proto3. @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as EnumOnlyProto3Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.editions.proto3.EnumOnlyProto3(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.editions.proto3.EnumOnlyProto3): kotlinx.rpc.protobuf.input.stream.InputStream { diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto2/TestMessagesProto2.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto2/TestMessagesProto2.kt index 4de9607b0..151d1b847 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto2/TestMessagesProto2.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto2/TestMessagesProto2.kt @@ -263,16 +263,16 @@ interface TestAllTypesProto2 { } sealed class NestedEnum(open val number: Int) { - object FOO: NestedEnum(number = 0) + data object FOO: NestedEnum(number = 0) - object BAR: NestedEnum(number = 1) + data object BAR: NestedEnum(number = 1) - object BAZ: NestedEnum(number = 2) + data object BAZ: NestedEnum(number = 2) /** * Intentionally negative. */ - object NEG: NestedEnum(number = -1) + data object NEG: NestedEnum(number = -1) data class UNRECOGNIZED(override val number: Int): NestedEnum(number) @@ -325,9 +325,9 @@ interface NullHypothesisProto2 { @kotlinx.rpc.grpc.codec.WithCodec(com.google.protobuf_test_messages.proto2.EnumOnlyProto2Internal.CODEC::class) interface EnumOnlyProto2 { sealed class Bool(open val number: Int) { - object kFalse: Bool(number = 0) + data object kFalse: Bool(number = 0) - object kTrue: Bool(number = 1) + data object kTrue: Bool(number = 1) data class UNRECOGNIZED(override val number: Int): Bool(number) @@ -445,16 +445,16 @@ interface TestAllRequiredTypesProto2 { } sealed class NestedEnum(open val number: Int) { - object FOO: NestedEnum(number = 0) + data object FOO: NestedEnum(number = 0) - object BAR: NestedEnum(number = 1) + data object BAR: NestedEnum(number = 1) - object BAZ: NestedEnum(number = 2) + data object BAZ: NestedEnum(number = 2) /** * Intentionally negative. */ - object NEG: NestedEnum(number = -1) + data object NEG: NestedEnum(number = -1) data class UNRECOGNIZED(override val number: Int): NestedEnum(number) @@ -526,11 +526,11 @@ interface TestLargeOneof { } sealed class ForeignEnumProto2(open val number: Int) { - object FOREIGN_FOO: ForeignEnumProto2(number = 0) + data object FOREIGN_FOO: ForeignEnumProto2(number = 0) - object FOREIGN_BAR: ForeignEnumProto2(number = 1) + data object FOREIGN_BAR: ForeignEnumProto2(number = 1) - object FOREIGN_BAZ: ForeignEnumProto2(number = 2) + data object FOREIGN_BAZ: ForeignEnumProto2(number = 2) data class UNRECOGNIZED(override val number: Int): ForeignEnumProto2(number) diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto2/_rpc_internal/TestMessagesProto2.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto2/_rpc_internal/TestMessagesProto2.kt index d8b2b8a03..d5ec8443f 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto2/_rpc_internal/TestMessagesProto2.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto2/_rpc_internal/TestMessagesProto2.kt @@ -74,27 +74,27 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var optionalInt32: Int? = null - override var optionalInt64: Long? = null - override var optionalUint32: UInt? = null - override var optionalUint64: ULong? = null - override var optionalSint32: Int? = null - override var optionalSint64: Long? = null - override var optionalFixed32: UInt? = null - override var optionalFixed64: ULong? = null - override var optionalSfixed32: Int? = null - override var optionalSfixed64: Long? = null - override var optionalFloat: Float? = null - override var optionalDouble: Double? = null - override var optionalBool: Boolean? = null - override var optionalString: String? = null - override var optionalBytes: ByteArray? = null + override var optionalInt32: Int? by MsgFieldDelegate(PresenceIndices.optionalInt32) { null } + override var optionalInt64: Long? by MsgFieldDelegate(PresenceIndices.optionalInt64) { null } + override var optionalUint32: UInt? by MsgFieldDelegate(PresenceIndices.optionalUint32) { null } + override var optionalUint64: ULong? by MsgFieldDelegate(PresenceIndices.optionalUint64) { null } + override var optionalSint32: Int? by MsgFieldDelegate(PresenceIndices.optionalSint32) { null } + override var optionalSint64: Long? by MsgFieldDelegate(PresenceIndices.optionalSint64) { null } + override var optionalFixed32: UInt? by MsgFieldDelegate(PresenceIndices.optionalFixed32) { null } + override var optionalFixed64: ULong? by MsgFieldDelegate(PresenceIndices.optionalFixed64) { null } + override var optionalSfixed32: Int? by MsgFieldDelegate(PresenceIndices.optionalSfixed32) { null } + override var optionalSfixed64: Long? by MsgFieldDelegate(PresenceIndices.optionalSfixed64) { null } + override var optionalFloat: Float? by MsgFieldDelegate(PresenceIndices.optionalFloat) { null } + override var optionalDouble: Double? by MsgFieldDelegate(PresenceIndices.optionalDouble) { null } + override var optionalBool: Boolean? by MsgFieldDelegate(PresenceIndices.optionalBool) { null } + override var optionalString: String? by MsgFieldDelegate(PresenceIndices.optionalString) { null } + override var optionalBytes: ByteArray? by MsgFieldDelegate(PresenceIndices.optionalBytes) { null } override var optionalNestedMessage: com.google.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage by MsgFieldDelegate(PresenceIndices.optionalNestedMessage) { com.google.protobuf_test_messages.proto2.TestAllTypesProto2Internal.NestedMessageInternal() } override var optionalForeignMessage: com.google.protobuf_test_messages.proto2.ForeignMessageProto2 by MsgFieldDelegate(PresenceIndices.optionalForeignMessage) { com.google.protobuf_test_messages.proto2.ForeignMessageProto2Internal() } - override var optionalNestedEnum: com.google.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum? = null - override var optionalForeignEnum: com.google.protobuf_test_messages.proto2.ForeignEnumProto2? = null - override var optionalStringPiece: String? = null - override var optionalCord: String? = null + override var optionalNestedEnum: com.google.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum? by MsgFieldDelegate(PresenceIndices.optionalNestedEnum) { null } + override var optionalForeignEnum: com.google.protobuf_test_messages.proto2.ForeignEnumProto2? by MsgFieldDelegate(PresenceIndices.optionalForeignEnum) { null } + override var optionalStringPiece: String? by MsgFieldDelegate(PresenceIndices.optionalStringPiece) { null } + override var optionalCord: String? by MsgFieldDelegate(PresenceIndices.optionalCord) { null } override var recursiveMessage: com.google.protobuf_test_messages.proto2.TestAllTypesProto2 by MsgFieldDelegate(PresenceIndices.recursiveMessage) { com.google.protobuf_test_messages.proto2.TestAllTypesProto2Internal() } override var repeatedInt32: List by MsgFieldDelegate { mutableListOf() } override var repeatedInt64: List by MsgFieldDelegate { mutableListOf() } @@ -183,27 +183,748 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA override var defaultBool: Boolean by MsgFieldDelegate(PresenceIndices.defaultBool) { true } override var defaultString: String by MsgFieldDelegate(PresenceIndices.defaultString) { "Rosebud" } override var defaultBytes: ByteArray by MsgFieldDelegate(PresenceIndices.defaultBytes) { BytesDefaults.defaultBytes } - override var fieldname1: Int? = null - override var fieldName2: Int? = null - override var FieldName3: Int? = null - override var field_Name4_: Int? = null - override var field0name5: Int? = null - override var field_0Name6: Int? = null - override var fieldName7: Int? = null - override var FieldName8: Int? = null - override var field_Name9: Int? = null - override var Field_Name10: Int? = null - override var FIELD_NAME11: Int? = null - override var FIELDName12: Int? = null - override var _FieldName13: Int? = null - override var __FieldName14: Int? = null - override var field_Name15: Int? = null - override var field__Name16: Int? = null - override var fieldName17__: Int? = null - override var FieldName18__: Int? = null + override var fieldname1: Int? by MsgFieldDelegate(PresenceIndices.fieldname1) { null } + override var fieldName2: Int? by MsgFieldDelegate(PresenceIndices.fieldName2) { null } + override var FieldName3: Int? by MsgFieldDelegate(PresenceIndices.FieldName3) { null } + override var field_Name4_: Int? by MsgFieldDelegate(PresenceIndices.field_Name4_) { null } + override var field0name5: Int? by MsgFieldDelegate(PresenceIndices.field0name5) { null } + override var field_0Name6: Int? by MsgFieldDelegate(PresenceIndices.field_0Name6) { null } + override var fieldName7: Int? by MsgFieldDelegate(PresenceIndices.fieldName7) { null } + override var FieldName8: Int? by MsgFieldDelegate(PresenceIndices.FieldName8) { null } + override var field_Name9: Int? by MsgFieldDelegate(PresenceIndices.field_Name9) { null } + override var Field_Name10: Int? by MsgFieldDelegate(PresenceIndices.Field_Name10) { null } + override var FIELD_NAME11: Int? by MsgFieldDelegate(PresenceIndices.FIELD_NAME11) { null } + override var FIELDName12: Int? by MsgFieldDelegate(PresenceIndices.FIELDName12) { null } + override var _FieldName13: Int? by MsgFieldDelegate(PresenceIndices._FieldName13) { null } + override var __FieldName14: Int? by MsgFieldDelegate(PresenceIndices.__FieldName14) { null } + override var field_Name15: Int? by MsgFieldDelegate(PresenceIndices.field_Name15) { null } + override var field__Name16: Int? by MsgFieldDelegate(PresenceIndices.field__Name16) { null } + override var fieldName17__: Int? by MsgFieldDelegate(PresenceIndices.fieldName17__) { null } + override var FieldName18__: Int? by MsgFieldDelegate(PresenceIndices.FieldName18__) { null } override var messageSetCorrect: com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect by MsgFieldDelegate(PresenceIndices.messageSetCorrect) { com.google.protobuf_test_messages.proto2.TestAllTypesProto2Internal.MessageSetCorrectInternal() } override var oneofField: com.google.protobuf_test_messages.proto2.TestAllTypesProto2.OneofField? = null + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (optionalInt32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) (optionalInt64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[2]) (optionalUint32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[3]) (optionalUint64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[4]) (optionalSint32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[5]) (optionalSint64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[6]) (optionalFixed32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[7]) (optionalFixed64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[8]) (optionalSfixed32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[9]) (optionalSfixed64?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[10]) (optionalFloat?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[11]) (optionalDouble?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[12]) (optionalBool?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[13]) (optionalString?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[14]) (optionalBytes?.contentHashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[15]) optionalNestedMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[16]) optionalForeignMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[17]) (optionalNestedEnum?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[18]) (optionalForeignEnum?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[19]) (optionalStringPiece?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[20]) (optionalCord?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[21]) recursiveMessage.hashCode() else 0 + result = 31 * result + repeatedInt32.hashCode() + result = 31 * result + repeatedInt64.hashCode() + result = 31 * result + repeatedUint32.hashCode() + result = 31 * result + repeatedUint64.hashCode() + result = 31 * result + repeatedSint32.hashCode() + result = 31 * result + repeatedSint64.hashCode() + result = 31 * result + repeatedFixed32.hashCode() + result = 31 * result + repeatedFixed64.hashCode() + result = 31 * result + repeatedSfixed32.hashCode() + result = 31 * result + repeatedSfixed64.hashCode() + result = 31 * result + repeatedFloat.hashCode() + result = 31 * result + repeatedDouble.hashCode() + result = 31 * result + repeatedBool.hashCode() + result = 31 * result + repeatedString.hashCode() + result = 31 * result + repeatedBytes.hashCode() + result = 31 * result + repeatedNestedMessage.hashCode() + result = 31 * result + repeatedForeignMessage.hashCode() + result = 31 * result + repeatedNestedEnum.hashCode() + result = 31 * result + repeatedForeignEnum.hashCode() + result = 31 * result + repeatedStringPiece.hashCode() + result = 31 * result + repeatedCord.hashCode() + result = 31 * result + packedInt32.hashCode() + result = 31 * result + packedInt64.hashCode() + result = 31 * result + packedUint32.hashCode() + result = 31 * result + packedUint64.hashCode() + result = 31 * result + packedSint32.hashCode() + result = 31 * result + packedSint64.hashCode() + result = 31 * result + packedFixed32.hashCode() + result = 31 * result + packedFixed64.hashCode() + result = 31 * result + packedSfixed32.hashCode() + result = 31 * result + packedSfixed64.hashCode() + result = 31 * result + packedFloat.hashCode() + result = 31 * result + packedDouble.hashCode() + result = 31 * result + packedBool.hashCode() + result = 31 * result + packedNestedEnum.hashCode() + result = 31 * result + unpackedInt32.hashCode() + result = 31 * result + unpackedInt64.hashCode() + result = 31 * result + unpackedUint32.hashCode() + result = 31 * result + unpackedUint64.hashCode() + result = 31 * result + unpackedSint32.hashCode() + result = 31 * result + unpackedSint64.hashCode() + result = 31 * result + unpackedFixed32.hashCode() + result = 31 * result + unpackedFixed64.hashCode() + result = 31 * result + unpackedSfixed32.hashCode() + result = 31 * result + unpackedSfixed64.hashCode() + result = 31 * result + unpackedFloat.hashCode() + result = 31 * result + unpackedDouble.hashCode() + result = 31 * result + unpackedBool.hashCode() + result = 31 * result + unpackedNestedEnum.hashCode() + result = 31 * result + mapInt32Int32.hashCode() + result = 31 * result + mapInt64Int64.hashCode() + result = 31 * result + mapUint32Uint32.hashCode() + result = 31 * result + mapUint64Uint64.hashCode() + result = 31 * result + mapSint32Sint32.hashCode() + result = 31 * result + mapSint64Sint64.hashCode() + result = 31 * result + mapFixed32Fixed32.hashCode() + result = 31 * result + mapFixed64Fixed64.hashCode() + result = 31 * result + mapSfixed32Sfixed32.hashCode() + result = 31 * result + mapSfixed64Sfixed64.hashCode() + result = 31 * result + mapInt32Bool.hashCode() + result = 31 * result + mapInt32Float.hashCode() + result = 31 * result + mapInt32Double.hashCode() + result = 31 * result + mapInt32NestedMessage.hashCode() + result = 31 * result + mapBoolBool.hashCode() + result = 31 * result + mapStringString.hashCode() + result = 31 * result + mapStringBytes.hashCode() + result = 31 * result + mapStringNestedMessage.hashCode() + result = 31 * result + mapStringForeignMessage.hashCode() + result = 31 * result + mapStringNestedEnum.hashCode() + result = 31 * result + mapStringForeignEnum.hashCode() + result = 31 * result + if (presenceMask[22]) data.hashCode() else 0 + result = 31 * result + if (presenceMask[23]) multiwordgroupfield.hashCode() else 0 + result = 31 * result + if (presenceMask[24]) defaultInt32.hashCode() else 0 + result = 31 * result + if (presenceMask[25]) defaultInt64.hashCode() else 0 + result = 31 * result + if (presenceMask[26]) defaultUint32.hashCode() else 0 + result = 31 * result + if (presenceMask[27]) defaultUint64.hashCode() else 0 + result = 31 * result + if (presenceMask[28]) defaultSint32.hashCode() else 0 + result = 31 * result + if (presenceMask[29]) defaultSint64.hashCode() else 0 + result = 31 * result + if (presenceMask[30]) defaultFixed32.hashCode() else 0 + result = 31 * result + if (presenceMask[31]) defaultFixed64.hashCode() else 0 + result = 31 * result + if (presenceMask[32]) defaultSfixed32.hashCode() else 0 + result = 31 * result + if (presenceMask[33]) defaultSfixed64.hashCode() else 0 + result = 31 * result + if (presenceMask[34]) defaultFloat.hashCode() else 0 + result = 31 * result + if (presenceMask[35]) defaultDouble.hashCode() else 0 + result = 31 * result + if (presenceMask[36]) defaultBool.hashCode() else 0 + result = 31 * result + if (presenceMask[37]) defaultString.hashCode() else 0 + result = 31 * result + if (presenceMask[38]) defaultBytes.contentHashCode() else 0 + result = 31 * result + if (presenceMask[39]) (fieldname1?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[40]) (fieldName2?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[41]) (FieldName3?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[42]) (field_Name4_?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[43]) (field0name5?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[44]) (field_0Name6?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[45]) (fieldName7?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[46]) (FieldName8?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[47]) (field_Name9?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[48]) (Field_Name10?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[49]) (FIELD_NAME11?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[50]) (FIELDName12?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[51]) (_FieldName13?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[52]) (__FieldName14?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[53]) (field_Name15?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[54]) (field__Name16?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[55]) (fieldName17__?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[56]) (FieldName18__?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[57]) messageSetCorrect.hashCode() else 0 + result = 31 * result + (oneofField?.oneOfHashCode() ?: 0) + return result + } + + fun com.google.protobuf_test_messages.proto2.TestAllTypesProto2.OneofField.oneOfHashCode(): kotlin.Int { + val offset = when (this) { + is com.google.protobuf_test_messages.proto2.TestAllTypesProto2.OneofField.OneofUint32 -> 0 + is com.google.protobuf_test_messages.proto2.TestAllTypesProto2.OneofField.OneofNestedMessage -> 1 + is com.google.protobuf_test_messages.proto2.TestAllTypesProto2.OneofField.OneofString -> 2 + is com.google.protobuf_test_messages.proto2.TestAllTypesProto2.OneofField.OneofBytes -> 3 + is com.google.protobuf_test_messages.proto2.TestAllTypesProto2.OneofField.OneofBool -> 4 + is com.google.protobuf_test_messages.proto2.TestAllTypesProto2.OneofField.OneofUint64 -> 5 + is com.google.protobuf_test_messages.proto2.TestAllTypesProto2.OneofField.OneofFloat -> 6 + is com.google.protobuf_test_messages.proto2.TestAllTypesProto2.OneofField.OneofDouble -> 7 + is com.google.protobuf_test_messages.proto2.TestAllTypesProto2.OneofField.OneofEnum -> 8 + } + + return hashCode() + offset + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as TestAllTypesProto2Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && optionalInt32 != other.optionalInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && optionalInt64 != other.optionalInt64) return false + if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && optionalUint32 != other.optionalUint32) return false + if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && optionalUint64 != other.optionalUint64) return false + if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && optionalSint32 != other.optionalSint32) return false + if (presenceMask[5] != other.presenceMask[5] || presenceMask[5] && optionalSint64 != other.optionalSint64) return false + if (presenceMask[6] != other.presenceMask[6] || presenceMask[6] && optionalFixed32 != other.optionalFixed32) return false + if (presenceMask[7] != other.presenceMask[7] || presenceMask[7] && optionalFixed64 != other.optionalFixed64) return false + if (presenceMask[8] != other.presenceMask[8] || presenceMask[8] && optionalSfixed32 != other.optionalSfixed32) return false + if (presenceMask[9] != other.presenceMask[9] || presenceMask[9] && optionalSfixed64 != other.optionalSfixed64) return false + if (presenceMask[10] != other.presenceMask[10] || presenceMask[10] && optionalFloat != other.optionalFloat) return false + if (presenceMask[11] != other.presenceMask[11] || presenceMask[11] && optionalDouble != other.optionalDouble) return false + if (presenceMask[12] != other.presenceMask[12] || presenceMask[12] && optionalBool != other.optionalBool) return false + if (presenceMask[13] != other.presenceMask[13] || presenceMask[13] && optionalString != other.optionalString) return false + if (presenceMask[14] != other.presenceMask[14] || presenceMask[14] && ((optionalBytes != null && (other.optionalBytes == null || !optionalBytes!!.contentEquals(other.optionalBytes!!))) || other.optionalBytes != null)) return false + if (presenceMask[15] != other.presenceMask[15] || presenceMask[15] && optionalNestedMessage != other.optionalNestedMessage) return false + if (presenceMask[16] != other.presenceMask[16] || presenceMask[16] && optionalForeignMessage != other.optionalForeignMessage) return false + if (presenceMask[17] != other.presenceMask[17] || presenceMask[17] && optionalNestedEnum != other.optionalNestedEnum) return false + if (presenceMask[18] != other.presenceMask[18] || presenceMask[18] && optionalForeignEnum != other.optionalForeignEnum) return false + if (presenceMask[19] != other.presenceMask[19] || presenceMask[19] && optionalStringPiece != other.optionalStringPiece) return false + if (presenceMask[20] != other.presenceMask[20] || presenceMask[20] && optionalCord != other.optionalCord) return false + if (presenceMask[21] != other.presenceMask[21] || presenceMask[21] && recursiveMessage != other.recursiveMessage) return false + if (repeatedInt32 != other.repeatedInt32) return false + if (repeatedInt64 != other.repeatedInt64) return false + if (repeatedUint32 != other.repeatedUint32) return false + if (repeatedUint64 != other.repeatedUint64) return false + if (repeatedSint32 != other.repeatedSint32) return false + if (repeatedSint64 != other.repeatedSint64) return false + if (repeatedFixed32 != other.repeatedFixed32) return false + if (repeatedFixed64 != other.repeatedFixed64) return false + if (repeatedSfixed32 != other.repeatedSfixed32) return false + if (repeatedSfixed64 != other.repeatedSfixed64) return false + if (repeatedFloat != other.repeatedFloat) return false + if (repeatedDouble != other.repeatedDouble) return false + if (repeatedBool != other.repeatedBool) return false + if (repeatedString != other.repeatedString) return false + if (repeatedBytes != other.repeatedBytes) return false + if (repeatedNestedMessage != other.repeatedNestedMessage) return false + if (repeatedForeignMessage != other.repeatedForeignMessage) return false + if (repeatedNestedEnum != other.repeatedNestedEnum) return false + if (repeatedForeignEnum != other.repeatedForeignEnum) return false + if (repeatedStringPiece != other.repeatedStringPiece) return false + if (repeatedCord != other.repeatedCord) return false + if (packedInt32 != other.packedInt32) return false + if (packedInt64 != other.packedInt64) return false + if (packedUint32 != other.packedUint32) return false + if (packedUint64 != other.packedUint64) return false + if (packedSint32 != other.packedSint32) return false + if (packedSint64 != other.packedSint64) return false + if (packedFixed32 != other.packedFixed32) return false + if (packedFixed64 != other.packedFixed64) return false + if (packedSfixed32 != other.packedSfixed32) return false + if (packedSfixed64 != other.packedSfixed64) return false + if (packedFloat != other.packedFloat) return false + if (packedDouble != other.packedDouble) return false + if (packedBool != other.packedBool) return false + if (packedNestedEnum != other.packedNestedEnum) return false + if (unpackedInt32 != other.unpackedInt32) return false + if (unpackedInt64 != other.unpackedInt64) return false + if (unpackedUint32 != other.unpackedUint32) return false + if (unpackedUint64 != other.unpackedUint64) return false + if (unpackedSint32 != other.unpackedSint32) return false + if (unpackedSint64 != other.unpackedSint64) return false + if (unpackedFixed32 != other.unpackedFixed32) return false + if (unpackedFixed64 != other.unpackedFixed64) return false + if (unpackedSfixed32 != other.unpackedSfixed32) return false + if (unpackedSfixed64 != other.unpackedSfixed64) return false + if (unpackedFloat != other.unpackedFloat) return false + if (unpackedDouble != other.unpackedDouble) return false + if (unpackedBool != other.unpackedBool) return false + if (unpackedNestedEnum != other.unpackedNestedEnum) return false + if (mapInt32Int32 != other.mapInt32Int32) return false + if (mapInt64Int64 != other.mapInt64Int64) return false + if (mapUint32Uint32 != other.mapUint32Uint32) return false + if (mapUint64Uint64 != other.mapUint64Uint64) return false + if (mapSint32Sint32 != other.mapSint32Sint32) return false + if (mapSint64Sint64 != other.mapSint64Sint64) return false + if (mapFixed32Fixed32 != other.mapFixed32Fixed32) return false + if (mapFixed64Fixed64 != other.mapFixed64Fixed64) return false + if (mapSfixed32Sfixed32 != other.mapSfixed32Sfixed32) return false + if (mapSfixed64Sfixed64 != other.mapSfixed64Sfixed64) return false + if (mapInt32Bool != other.mapInt32Bool) return false + if (mapInt32Float != other.mapInt32Float) return false + if (mapInt32Double != other.mapInt32Double) return false + if (mapInt32NestedMessage != other.mapInt32NestedMessage) return false + if (mapBoolBool != other.mapBoolBool) return false + if (mapStringString != other.mapStringString) return false + if (mapStringBytes != other.mapStringBytes) return false + if (mapStringNestedMessage != other.mapStringNestedMessage) return false + if (mapStringForeignMessage != other.mapStringForeignMessage) return false + if (mapStringNestedEnum != other.mapStringNestedEnum) return false + if (mapStringForeignEnum != other.mapStringForeignEnum) return false + if (presenceMask[22] != other.presenceMask[22] || presenceMask[22] && data != other.data) return false + if (presenceMask[23] != other.presenceMask[23] || presenceMask[23] && multiwordgroupfield != other.multiwordgroupfield) return false + if (presenceMask[24] != other.presenceMask[24] || presenceMask[24] && defaultInt32 != other.defaultInt32) return false + if (presenceMask[25] != other.presenceMask[25] || presenceMask[25] && defaultInt64 != other.defaultInt64) return false + if (presenceMask[26] != other.presenceMask[26] || presenceMask[26] && defaultUint32 != other.defaultUint32) return false + if (presenceMask[27] != other.presenceMask[27] || presenceMask[27] && defaultUint64 != other.defaultUint64) return false + if (presenceMask[28] != other.presenceMask[28] || presenceMask[28] && defaultSint32 != other.defaultSint32) return false + if (presenceMask[29] != other.presenceMask[29] || presenceMask[29] && defaultSint64 != other.defaultSint64) return false + if (presenceMask[30] != other.presenceMask[30] || presenceMask[30] && defaultFixed32 != other.defaultFixed32) return false + if (presenceMask[31] != other.presenceMask[31] || presenceMask[31] && defaultFixed64 != other.defaultFixed64) return false + if (presenceMask[32] != other.presenceMask[32] || presenceMask[32] && defaultSfixed32 != other.defaultSfixed32) return false + if (presenceMask[33] != other.presenceMask[33] || presenceMask[33] && defaultSfixed64 != other.defaultSfixed64) return false + if (presenceMask[34] != other.presenceMask[34] || presenceMask[34] && defaultFloat != other.defaultFloat) return false + if (presenceMask[35] != other.presenceMask[35] || presenceMask[35] && defaultDouble != other.defaultDouble) return false + if (presenceMask[36] != other.presenceMask[36] || presenceMask[36] && defaultBool != other.defaultBool) return false + if (presenceMask[37] != other.presenceMask[37] || presenceMask[37] && defaultString != other.defaultString) return false + if (presenceMask[38] != other.presenceMask[38] || presenceMask[38] && !defaultBytes.contentEquals(other.defaultBytes)) return false + if (presenceMask[39] != other.presenceMask[39] || presenceMask[39] && fieldname1 != other.fieldname1) return false + if (presenceMask[40] != other.presenceMask[40] || presenceMask[40] && fieldName2 != other.fieldName2) return false + if (presenceMask[41] != other.presenceMask[41] || presenceMask[41] && FieldName3 != other.FieldName3) return false + if (presenceMask[42] != other.presenceMask[42] || presenceMask[42] && field_Name4_ != other.field_Name4_) return false + if (presenceMask[43] != other.presenceMask[43] || presenceMask[43] && field0name5 != other.field0name5) return false + if (presenceMask[44] != other.presenceMask[44] || presenceMask[44] && field_0Name6 != other.field_0Name6) return false + if (presenceMask[45] != other.presenceMask[45] || presenceMask[45] && fieldName7 != other.fieldName7) return false + if (presenceMask[46] != other.presenceMask[46] || presenceMask[46] && FieldName8 != other.FieldName8) return false + if (presenceMask[47] != other.presenceMask[47] || presenceMask[47] && field_Name9 != other.field_Name9) return false + if (presenceMask[48] != other.presenceMask[48] || presenceMask[48] && Field_Name10 != other.Field_Name10) return false + if (presenceMask[49] != other.presenceMask[49] || presenceMask[49] && FIELD_NAME11 != other.FIELD_NAME11) return false + if (presenceMask[50] != other.presenceMask[50] || presenceMask[50] && FIELDName12 != other.FIELDName12) return false + if (presenceMask[51] != other.presenceMask[51] || presenceMask[51] && _FieldName13 != other._FieldName13) return false + if (presenceMask[52] != other.presenceMask[52] || presenceMask[52] && __FieldName14 != other.__FieldName14) return false + if (presenceMask[53] != other.presenceMask[53] || presenceMask[53] && field_Name15 != other.field_Name15) return false + if (presenceMask[54] != other.presenceMask[54] || presenceMask[54] && field__Name16 != other.field__Name16) return false + if (presenceMask[55] != other.presenceMask[55] || presenceMask[55] && fieldName17__ != other.fieldName17__) return false + if (presenceMask[56] != other.presenceMask[56] || presenceMask[56] && FieldName18__ != other.FieldName18__) return false + if (presenceMask[57] != other.presenceMask[57] || presenceMask[57] && messageSetCorrect != other.messageSetCorrect) return false + if (oneofField != other.oneofField) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2(") + if (presenceMask[0]) { + appendLine("${nextIndentString}optionalInt32=${optionalInt32},") + } else { + appendLine("${nextIndentString}optionalInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}optionalInt64=${optionalInt64},") + } else { + appendLine("${nextIndentString}optionalInt64=,") + } + + if (presenceMask[2]) { + appendLine("${nextIndentString}optionalUint32=${optionalUint32},") + } else { + appendLine("${nextIndentString}optionalUint32=,") + } + + if (presenceMask[3]) { + appendLine("${nextIndentString}optionalUint64=${optionalUint64},") + } else { + appendLine("${nextIndentString}optionalUint64=,") + } + + if (presenceMask[4]) { + appendLine("${nextIndentString}optionalSint32=${optionalSint32},") + } else { + appendLine("${nextIndentString}optionalSint32=,") + } + + if (presenceMask[5]) { + appendLine("${nextIndentString}optionalSint64=${optionalSint64},") + } else { + appendLine("${nextIndentString}optionalSint64=,") + } + + if (presenceMask[6]) { + appendLine("${nextIndentString}optionalFixed32=${optionalFixed32},") + } else { + appendLine("${nextIndentString}optionalFixed32=,") + } + + if (presenceMask[7]) { + appendLine("${nextIndentString}optionalFixed64=${optionalFixed64},") + } else { + appendLine("${nextIndentString}optionalFixed64=,") + } + + if (presenceMask[8]) { + appendLine("${nextIndentString}optionalSfixed32=${optionalSfixed32},") + } else { + appendLine("${nextIndentString}optionalSfixed32=,") + } + + if (presenceMask[9]) { + appendLine("${nextIndentString}optionalSfixed64=${optionalSfixed64},") + } else { + appendLine("${nextIndentString}optionalSfixed64=,") + } + + if (presenceMask[10]) { + appendLine("${nextIndentString}optionalFloat=${optionalFloat},") + } else { + appendLine("${nextIndentString}optionalFloat=,") + } + + if (presenceMask[11]) { + appendLine("${nextIndentString}optionalDouble=${optionalDouble},") + } else { + appendLine("${nextIndentString}optionalDouble=,") + } + + if (presenceMask[12]) { + appendLine("${nextIndentString}optionalBool=${optionalBool},") + } else { + appendLine("${nextIndentString}optionalBool=,") + } + + if (presenceMask[13]) { + appendLine("${nextIndentString}optionalString=${optionalString},") + } else { + appendLine("${nextIndentString}optionalString=,") + } + + if (presenceMask[14]) { + appendLine("${nextIndentString}optionalBytes=${optionalBytes.contentToString()},") + } else { + appendLine("${nextIndentString}optionalBytes=,") + } + + if (presenceMask[15]) { + appendLine("${nextIndentString}optionalNestedMessage=${optionalNestedMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalNestedMessage=,") + } + + if (presenceMask[16]) { + appendLine("${nextIndentString}optionalForeignMessage=${optionalForeignMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalForeignMessage=,") + } + + if (presenceMask[17]) { + appendLine("${nextIndentString}optionalNestedEnum=${optionalNestedEnum},") + } else { + appendLine("${nextIndentString}optionalNestedEnum=,") + } + + if (presenceMask[18]) { + appendLine("${nextIndentString}optionalForeignEnum=${optionalForeignEnum},") + } else { + appendLine("${nextIndentString}optionalForeignEnum=,") + } + + if (presenceMask[19]) { + appendLine("${nextIndentString}optionalStringPiece=${optionalStringPiece},") + } else { + appendLine("${nextIndentString}optionalStringPiece=,") + } + + if (presenceMask[20]) { + appendLine("${nextIndentString}optionalCord=${optionalCord},") + } else { + appendLine("${nextIndentString}optionalCord=,") + } + + if (presenceMask[21]) { + appendLine("${nextIndentString}recursiveMessage=${recursiveMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}recursiveMessage=,") + } + + appendLine("${nextIndentString}repeatedInt32=${repeatedInt32},") + appendLine("${nextIndentString}repeatedInt64=${repeatedInt64},") + appendLine("${nextIndentString}repeatedUint32=${repeatedUint32},") + appendLine("${nextIndentString}repeatedUint64=${repeatedUint64},") + appendLine("${nextIndentString}repeatedSint32=${repeatedSint32},") + appendLine("${nextIndentString}repeatedSint64=${repeatedSint64},") + appendLine("${nextIndentString}repeatedFixed32=${repeatedFixed32},") + appendLine("${nextIndentString}repeatedFixed64=${repeatedFixed64},") + appendLine("${nextIndentString}repeatedSfixed32=${repeatedSfixed32},") + appendLine("${nextIndentString}repeatedSfixed64=${repeatedSfixed64},") + appendLine("${nextIndentString}repeatedFloat=${repeatedFloat},") + appendLine("${nextIndentString}repeatedDouble=${repeatedDouble},") + appendLine("${nextIndentString}repeatedBool=${repeatedBool},") + appendLine("${nextIndentString}repeatedString=${repeatedString},") + appendLine("${nextIndentString}repeatedBytes=${repeatedBytes},") + appendLine("${nextIndentString}repeatedNestedMessage=${repeatedNestedMessage},") + appendLine("${nextIndentString}repeatedForeignMessage=${repeatedForeignMessage},") + appendLine("${nextIndentString}repeatedNestedEnum=${repeatedNestedEnum},") + appendLine("${nextIndentString}repeatedForeignEnum=${repeatedForeignEnum},") + appendLine("${nextIndentString}repeatedStringPiece=${repeatedStringPiece},") + appendLine("${nextIndentString}repeatedCord=${repeatedCord},") + appendLine("${nextIndentString}packedInt32=${packedInt32},") + appendLine("${nextIndentString}packedInt64=${packedInt64},") + appendLine("${nextIndentString}packedUint32=${packedUint32},") + appendLine("${nextIndentString}packedUint64=${packedUint64},") + appendLine("${nextIndentString}packedSint32=${packedSint32},") + appendLine("${nextIndentString}packedSint64=${packedSint64},") + appendLine("${nextIndentString}packedFixed32=${packedFixed32},") + appendLine("${nextIndentString}packedFixed64=${packedFixed64},") + appendLine("${nextIndentString}packedSfixed32=${packedSfixed32},") + appendLine("${nextIndentString}packedSfixed64=${packedSfixed64},") + appendLine("${nextIndentString}packedFloat=${packedFloat},") + appendLine("${nextIndentString}packedDouble=${packedDouble},") + appendLine("${nextIndentString}packedBool=${packedBool},") + appendLine("${nextIndentString}packedNestedEnum=${packedNestedEnum},") + appendLine("${nextIndentString}unpackedInt32=${unpackedInt32},") + appendLine("${nextIndentString}unpackedInt64=${unpackedInt64},") + appendLine("${nextIndentString}unpackedUint32=${unpackedUint32},") + appendLine("${nextIndentString}unpackedUint64=${unpackedUint64},") + appendLine("${nextIndentString}unpackedSint32=${unpackedSint32},") + appendLine("${nextIndentString}unpackedSint64=${unpackedSint64},") + appendLine("${nextIndentString}unpackedFixed32=${unpackedFixed32},") + appendLine("${nextIndentString}unpackedFixed64=${unpackedFixed64},") + appendLine("${nextIndentString}unpackedSfixed32=${unpackedSfixed32},") + appendLine("${nextIndentString}unpackedSfixed64=${unpackedSfixed64},") + appendLine("${nextIndentString}unpackedFloat=${unpackedFloat},") + appendLine("${nextIndentString}unpackedDouble=${unpackedDouble},") + appendLine("${nextIndentString}unpackedBool=${unpackedBool},") + appendLine("${nextIndentString}unpackedNestedEnum=${unpackedNestedEnum},") + appendLine("${nextIndentString}mapInt32Int32=${mapInt32Int32},") + appendLine("${nextIndentString}mapInt64Int64=${mapInt64Int64},") + appendLine("${nextIndentString}mapUint32Uint32=${mapUint32Uint32},") + appendLine("${nextIndentString}mapUint64Uint64=${mapUint64Uint64},") + appendLine("${nextIndentString}mapSint32Sint32=${mapSint32Sint32},") + appendLine("${nextIndentString}mapSint64Sint64=${mapSint64Sint64},") + appendLine("${nextIndentString}mapFixed32Fixed32=${mapFixed32Fixed32},") + appendLine("${nextIndentString}mapFixed64Fixed64=${mapFixed64Fixed64},") + appendLine("${nextIndentString}mapSfixed32Sfixed32=${mapSfixed32Sfixed32},") + appendLine("${nextIndentString}mapSfixed64Sfixed64=${mapSfixed64Sfixed64},") + appendLine("${nextIndentString}mapInt32Bool=${mapInt32Bool},") + appendLine("${nextIndentString}mapInt32Float=${mapInt32Float},") + appendLine("${nextIndentString}mapInt32Double=${mapInt32Double},") + appendLine("${nextIndentString}mapInt32NestedMessage=${mapInt32NestedMessage},") + appendLine("${nextIndentString}mapBoolBool=${mapBoolBool},") + appendLine("${nextIndentString}mapStringString=${mapStringString},") + appendLine("${nextIndentString}mapStringBytes=${mapStringBytes},") + appendLine("${nextIndentString}mapStringNestedMessage=${mapStringNestedMessage},") + appendLine("${nextIndentString}mapStringForeignMessage=${mapStringForeignMessage},") + appendLine("${nextIndentString}mapStringNestedEnum=${mapStringNestedEnum},") + appendLine("${nextIndentString}mapStringForeignEnum=${mapStringForeignEnum},") + if (presenceMask[22]) { + appendLine("${nextIndentString}data=${data.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}data=,") + } + + if (presenceMask[23]) { + appendLine("${nextIndentString}multiwordgroupfield=${multiwordgroupfield.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}multiwordgroupfield=,") + } + + if (presenceMask[24]) { + appendLine("${nextIndentString}defaultInt32=${defaultInt32},") + } else { + appendLine("${nextIndentString}defaultInt32=,") + } + + if (presenceMask[25]) { + appendLine("${nextIndentString}defaultInt64=${defaultInt64},") + } else { + appendLine("${nextIndentString}defaultInt64=,") + } + + if (presenceMask[26]) { + appendLine("${nextIndentString}defaultUint32=${defaultUint32},") + } else { + appendLine("${nextIndentString}defaultUint32=,") + } + + if (presenceMask[27]) { + appendLine("${nextIndentString}defaultUint64=${defaultUint64},") + } else { + appendLine("${nextIndentString}defaultUint64=,") + } + + if (presenceMask[28]) { + appendLine("${nextIndentString}defaultSint32=${defaultSint32},") + } else { + appendLine("${nextIndentString}defaultSint32=,") + } + + if (presenceMask[29]) { + appendLine("${nextIndentString}defaultSint64=${defaultSint64},") + } else { + appendLine("${nextIndentString}defaultSint64=,") + } + + if (presenceMask[30]) { + appendLine("${nextIndentString}defaultFixed32=${defaultFixed32},") + } else { + appendLine("${nextIndentString}defaultFixed32=,") + } + + if (presenceMask[31]) { + appendLine("${nextIndentString}defaultFixed64=${defaultFixed64},") + } else { + appendLine("${nextIndentString}defaultFixed64=,") + } + + if (presenceMask[32]) { + appendLine("${nextIndentString}defaultSfixed32=${defaultSfixed32},") + } else { + appendLine("${nextIndentString}defaultSfixed32=,") + } + + if (presenceMask[33]) { + appendLine("${nextIndentString}defaultSfixed64=${defaultSfixed64},") + } else { + appendLine("${nextIndentString}defaultSfixed64=,") + } + + if (presenceMask[34]) { + appendLine("${nextIndentString}defaultFloat=${defaultFloat},") + } else { + appendLine("${nextIndentString}defaultFloat=,") + } + + if (presenceMask[35]) { + appendLine("${nextIndentString}defaultDouble=${defaultDouble},") + } else { + appendLine("${nextIndentString}defaultDouble=,") + } + + if (presenceMask[36]) { + appendLine("${nextIndentString}defaultBool=${defaultBool},") + } else { + appendLine("${nextIndentString}defaultBool=,") + } + + if (presenceMask[37]) { + appendLine("${nextIndentString}defaultString=${defaultString},") + } else { + appendLine("${nextIndentString}defaultString=,") + } + + if (presenceMask[38]) { + appendLine("${nextIndentString}defaultBytes=${defaultBytes.contentToString()},") + } else { + appendLine("${nextIndentString}defaultBytes=,") + } + + if (presenceMask[39]) { + appendLine("${nextIndentString}fieldname1=${fieldname1},") + } else { + appendLine("${nextIndentString}fieldname1=,") + } + + if (presenceMask[40]) { + appendLine("${nextIndentString}fieldName2=${fieldName2},") + } else { + appendLine("${nextIndentString}fieldName2=,") + } + + if (presenceMask[41]) { + appendLine("${nextIndentString}FieldName3=${FieldName3},") + } else { + appendLine("${nextIndentString}FieldName3=,") + } + + if (presenceMask[42]) { + appendLine("${nextIndentString}field_Name4_=${field_Name4_},") + } else { + appendLine("${nextIndentString}field_Name4_=,") + } + + if (presenceMask[43]) { + appendLine("${nextIndentString}field0name5=${field0name5},") + } else { + appendLine("${nextIndentString}field0name5=,") + } + + if (presenceMask[44]) { + appendLine("${nextIndentString}field_0Name6=${field_0Name6},") + } else { + appendLine("${nextIndentString}field_0Name6=,") + } + + if (presenceMask[45]) { + appendLine("${nextIndentString}fieldName7=${fieldName7},") + } else { + appendLine("${nextIndentString}fieldName7=,") + } + + if (presenceMask[46]) { + appendLine("${nextIndentString}FieldName8=${FieldName8},") + } else { + appendLine("${nextIndentString}FieldName8=,") + } + + if (presenceMask[47]) { + appendLine("${nextIndentString}field_Name9=${field_Name9},") + } else { + appendLine("${nextIndentString}field_Name9=,") + } + + if (presenceMask[48]) { + appendLine("${nextIndentString}Field_Name10=${Field_Name10},") + } else { + appendLine("${nextIndentString}Field_Name10=,") + } + + if (presenceMask[49]) { + appendLine("${nextIndentString}FIELD_NAME11=${FIELD_NAME11},") + } else { + appendLine("${nextIndentString}FIELD_NAME11=,") + } + + if (presenceMask[50]) { + appendLine("${nextIndentString}FIELDName12=${FIELDName12},") + } else { + appendLine("${nextIndentString}FIELDName12=,") + } + + if (presenceMask[51]) { + appendLine("${nextIndentString}_FieldName13=${_FieldName13},") + } else { + appendLine("${nextIndentString}_FieldName13=,") + } + + if (presenceMask[52]) { + appendLine("${nextIndentString}__FieldName14=${__FieldName14},") + } else { + appendLine("${nextIndentString}__FieldName14=,") + } + + if (presenceMask[53]) { + appendLine("${nextIndentString}field_Name15=${field_Name15},") + } else { + appendLine("${nextIndentString}field_Name15=,") + } + + if (presenceMask[54]) { + appendLine("${nextIndentString}field__Name16=${field__Name16},") + } else { + appendLine("${nextIndentString}field__Name16=,") + } + + if (presenceMask[55]) { + appendLine("${nextIndentString}fieldName17__=${fieldName17__},") + } else { + appendLine("${nextIndentString}fieldName17__=,") + } + + if (presenceMask[56]) { + appendLine("${nextIndentString}FieldName18__=${FieldName18__},") + } else { + appendLine("${nextIndentString}FieldName18__=,") + } + + if (presenceMask[57]) { + appendLine("${nextIndentString}messageSetCorrect=${messageSetCorrect.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}messageSetCorrect=,") + } + + appendLine("${nextIndentString}oneofField=${oneofField},") + append("${indentString})") + } + } + class NestedMessageInternal: com.google.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage, kotlinx.rpc.protobuf.internal.InternalMessage(fieldsWithPresence = 2) { private object PresenceIndices { const val a: Int = 0 @@ -213,9 +934,53 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var a: Int? = null + override var a: Int? by MsgFieldDelegate(PresenceIndices.a) { null } override var corecursive: com.google.protobuf_test_messages.proto2.TestAllTypesProto2 by MsgFieldDelegate(PresenceIndices.corecursive) { com.google.protobuf_test_messages.proto2.TestAllTypesProto2Internal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (a?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) corecursive.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as NestedMessageInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && a != other.a) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && corecursive != other.corecursive) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage(") + if (presenceMask[0]) { + appendLine("${nextIndentString}a=${a},") + } else { + appendLine("${nextIndentString}a=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}corecursive=${corecursive.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}corecursive=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -256,6 +1021,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Int by MsgFieldDelegate(PresenceIndices.value) { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32Int32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -272,6 +1081,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: Long by MsgFieldDelegate(PresenceIndices.key) { 0L } var value: Long by MsgFieldDelegate(PresenceIndices.value) { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt64Int64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -288,6 +1141,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: UInt by MsgFieldDelegate(PresenceIndices.key) { 0u } var value: UInt by MsgFieldDelegate(PresenceIndices.value) { 0u } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapUint32Uint32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -304,6 +1201,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: ULong by MsgFieldDelegate(PresenceIndices.key) { 0uL } var value: ULong by MsgFieldDelegate(PresenceIndices.value) { 0uL } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapUint64Uint64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -320,6 +1261,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Int by MsgFieldDelegate(PresenceIndices.value) { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSint32Sint32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -336,6 +1321,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: Long by MsgFieldDelegate(PresenceIndices.key) { 0L } var value: Long by MsgFieldDelegate(PresenceIndices.value) { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSint64Sint64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -352,6 +1381,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: UInt by MsgFieldDelegate(PresenceIndices.key) { 0u } var value: UInt by MsgFieldDelegate(PresenceIndices.value) { 0u } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapFixed32Fixed32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -368,6 +1441,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: ULong by MsgFieldDelegate(PresenceIndices.key) { 0uL } var value: ULong by MsgFieldDelegate(PresenceIndices.value) { 0uL } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapFixed64Fixed64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -384,6 +1501,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Int by MsgFieldDelegate(PresenceIndices.value) { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSfixed32Sfixed32EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -400,6 +1561,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: Long by MsgFieldDelegate(PresenceIndices.key) { 0L } var value: Long by MsgFieldDelegate(PresenceIndices.value) { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSfixed64Sfixed64EntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -416,6 +1621,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Boolean by MsgFieldDelegate(PresenceIndices.value) { false } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32BoolEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32BoolEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -432,6 +1681,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Float by MsgFieldDelegate(PresenceIndices.value) { 0.0f } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32FloatEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -448,6 +1741,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: Double by MsgFieldDelegate(PresenceIndices.value) { 0.0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32DoubleEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -464,6 +1801,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: Int by MsgFieldDelegate(PresenceIndices.key) { 0 } var value: com.google.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.proto2.TestAllTypesProto2Internal.NestedMessageInternal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32NestedMessageEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32NestedMessageEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -480,6 +1861,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: Boolean by MsgFieldDelegate(PresenceIndices.key) { false } var value: Boolean by MsgFieldDelegate(PresenceIndices.value) { false } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapBoolBoolEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -496,6 +1921,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: String by MsgFieldDelegate(PresenceIndices.value) { "" } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringStringEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -512,6 +1981,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: ByteArray by MsgFieldDelegate(PresenceIndices.value) { byteArrayOf() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.contentHashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringBytesEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && !value.contentEquals(other.value)) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value.contentToString()},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -528,6 +2041,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: com.google.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.proto2.TestAllTypesProto2Internal.NestedMessageInternal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringNestedMessageEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -544,6 +2101,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: com.google.protobuf_test_messages.proto2.ForeignMessageProto2 by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.proto2.ForeignMessageProto2Internal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringForeignMessageEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -560,6 +2161,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: com.google.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum.FOO } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringNestedEnumEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -576,6 +2221,50 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA var key: String by MsgFieldDelegate(PresenceIndices.key) { "" } var value: com.google.protobuf_test_messages.proto2.ForeignEnumProto2 by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.proto2.ForeignEnumProto2.FOREIGN_FOO } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) key.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringForeignEnumEntryInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry(") + if (presenceMask[0]) { + appendLine("${nextIndentString}key=${key},") + } else { + appendLine("${nextIndentString}key=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}value=${value},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -589,8 +2278,52 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var groupInt32: Int? = null - override var groupUint32: UInt? = null + override var groupInt32: Int? by MsgFieldDelegate(PresenceIndices.groupInt32) { null } + override var groupUint32: UInt? by MsgFieldDelegate(PresenceIndices.groupUint32) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (groupInt32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) (groupUint32?.hashCode() ?: 0) else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as DataInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.Data(") + if (presenceMask[0]) { + appendLine("${nextIndentString}groupInt32=${groupInt32},") + } else { + appendLine("${nextIndentString}groupInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}groupUint32=${groupUint32},") + } else { + appendLine("${nextIndentString}groupUint32=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi companion object @@ -605,8 +2338,52 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var groupInt32: Int? = null - override var groupUint32: UInt? = null + override var groupInt32: Int? by MsgFieldDelegate(PresenceIndices.groupInt32) { null } + override var groupUint32: UInt? by MsgFieldDelegate(PresenceIndices.groupUint32) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (groupInt32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) (groupUint32?.hashCode() ?: 0) else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MultiWordGroupFieldInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MultiWordGroupField(") + if (presenceMask[0]) { + appendLine("${nextIndentString}groupInt32=${groupInt32},") + } else { + appendLine("${nextIndentString}groupInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}groupUint32=${groupUint32},") + } else { + appendLine("${nextIndentString}groupUint32=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi companion object @@ -616,6 +2393,34 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MessageSetCorrectInternal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -652,7 +2457,42 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var str: String? = null + override var str: String? by MsgFieldDelegate(PresenceIndices.str) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) (str?.hashCode() ?: 0) else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MessageSetCorrectExtension1Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && str != other.str) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1(") + if (presenceMask[0]) { + appendLine("${nextIndentString}str=${str},") + } else { + appendLine("${nextIndentString}str=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { @@ -690,7 +2530,42 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var i: Int? = null + override var i: Int? by MsgFieldDelegate(PresenceIndices.i) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) (i?.hashCode() ?: 0) else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MessageSetCorrectExtension2Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && i != other.i) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2(") + if (presenceMask[0]) { + appendLine("${nextIndentString}i=${i},") + } else { + appendLine("${nextIndentString}i=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { @@ -726,6 +2601,45 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA override var oneofField: com.google.protobuf_test_messages.proto2.TestAllTypesProto2.ExtensionWithOneof.OneofField? = null + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return (oneofField?.oneOfHashCode() ?: 0) + } + + fun com.google.protobuf_test_messages.proto2.TestAllTypesProto2.ExtensionWithOneof.OneofField.oneOfHashCode(): kotlin.Int { + val offset = when (this) { + is com.google.protobuf_test_messages.proto2.TestAllTypesProto2.ExtensionWithOneof.OneofField.A -> 0 + is com.google.protobuf_test_messages.proto2.TestAllTypesProto2.ExtensionWithOneof.OneofField.B -> 1 + } + + return hashCode() + offset + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ExtensionWithOneofInternal + other.checkRequiredFields() + if (oneofField != other.oneofField) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllTypesProto2.ExtensionWithOneof(") + appendLine("${nextIndentString}oneofField=${oneofField},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.TestAllTypesProto2.ExtensionWithOneof): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -790,7 +2704,42 @@ class ForeignMessageProto2Internal: com.google.protobuf_test_messages.proto2.For @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var c: Int? = null + override var c: Int? by MsgFieldDelegate(PresenceIndices.c) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) (c?.hashCode() ?: 0) else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ForeignMessageProto2Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && c != other.c) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.ForeignMessageProto2(") + if (presenceMask[0]) { + appendLine("${nextIndentString}c=${c},") + } else { + appendLine("${nextIndentString}c=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { @@ -829,8 +2778,52 @@ class GroupFieldInternal: com.google.protobuf_test_messages.proto2.GroupField, k @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var groupInt32: Int? = null - override var groupUint32: UInt? = null + override var groupInt32: Int? by MsgFieldDelegate(PresenceIndices.groupInt32) { null } + override var groupUint32: UInt? by MsgFieldDelegate(PresenceIndices.groupUint32) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (groupInt32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) (groupUint32?.hashCode() ?: 0) else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as GroupFieldInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.GroupField(") + if (presenceMask[0]) { + appendLine("${nextIndentString}groupInt32=${groupInt32},") + } else { + appendLine("${nextIndentString}groupInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}groupUint32=${groupUint32},") + } else { + appendLine("${nextIndentString}groupUint32=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { @@ -869,15 +2862,86 @@ class UnknownToTestAllTypesInternal: com.google.protobuf_test_messages.proto2.Un const val optionalBool: Int = 4 } - @kotlinx.rpc.internal.utils.InternalRpcApi - override val _size: Int by lazy { computeSize() } + @kotlinx.rpc.internal.utils.InternalRpcApi + override val _size: Int by lazy { computeSize() } + + override var optionalInt32: Int? by MsgFieldDelegate(PresenceIndices.optionalInt32) { null } + override var optionalString: String? by MsgFieldDelegate(PresenceIndices.optionalString) { null } + override var nestedMessage: com.google.protobuf_test_messages.proto2.ForeignMessageProto2 by MsgFieldDelegate(PresenceIndices.nestedMessage) { com.google.protobuf_test_messages.proto2.ForeignMessageProto2Internal() } + override var optionalgroup: com.google.protobuf_test_messages.proto2.UnknownToTestAllTypes.OptionalGroup by MsgFieldDelegate(PresenceIndices.optionalgroup) { com.google.protobuf_test_messages.proto2.UnknownToTestAllTypesInternal.OptionalGroupInternal() } + override var optionalBool: Boolean? by MsgFieldDelegate(PresenceIndices.optionalBool) { null } + override var repeatedInt32: List by MsgFieldDelegate { mutableListOf() } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (optionalInt32?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) (optionalString?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[2]) nestedMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[3]) optionalgroup.hashCode() else 0 + result = 31 * result + if (presenceMask[4]) (optionalBool?.hashCode() ?: 0) else 0 + result = 31 * result + repeatedInt32.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as UnknownToTestAllTypesInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && optionalInt32 != other.optionalInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && optionalString != other.optionalString) return false + if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && nestedMessage != other.nestedMessage) return false + if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && optionalgroup != other.optionalgroup) return false + if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && optionalBool != other.optionalBool) return false + if (repeatedInt32 != other.repeatedInt32) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.UnknownToTestAllTypes(") + if (presenceMask[0]) { + appendLine("${nextIndentString}optionalInt32=${optionalInt32},") + } else { + appendLine("${nextIndentString}optionalInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}optionalString=${optionalString},") + } else { + appendLine("${nextIndentString}optionalString=,") + } - override var optionalInt32: Int? = null - override var optionalString: String? = null - override var nestedMessage: com.google.protobuf_test_messages.proto2.ForeignMessageProto2 by MsgFieldDelegate(PresenceIndices.nestedMessage) { com.google.protobuf_test_messages.proto2.ForeignMessageProto2Internal() } - override var optionalgroup: com.google.protobuf_test_messages.proto2.UnknownToTestAllTypes.OptionalGroup by MsgFieldDelegate(PresenceIndices.optionalgroup) { com.google.protobuf_test_messages.proto2.UnknownToTestAllTypesInternal.OptionalGroupInternal() } - override var optionalBool: Boolean? = null - override var repeatedInt32: List by MsgFieldDelegate { mutableListOf() } + if (presenceMask[2]) { + appendLine("${nextIndentString}nestedMessage=${nestedMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}nestedMessage=,") + } + + if (presenceMask[3]) { + appendLine("${nextIndentString}optionalgroup=${optionalgroup.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalgroup=,") + } + + if (presenceMask[4]) { + appendLine("${nextIndentString}optionalBool=${optionalBool},") + } else { + appendLine("${nextIndentString}optionalBool=,") + } + + appendLine("${nextIndentString}repeatedInt32=${repeatedInt32},") + append("${indentString})") + } + } class OptionalGroupInternal: com.google.protobuf_test_messages.proto2.UnknownToTestAllTypes.OptionalGroup, kotlinx.rpc.protobuf.internal.InternalMessage(fieldsWithPresence = 1) { private object PresenceIndices { @@ -887,7 +2951,42 @@ class UnknownToTestAllTypesInternal: com.google.protobuf_test_messages.proto2.Un @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var a: Int? = null + override var a: Int? by MsgFieldDelegate(PresenceIndices.a) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) (a?.hashCode() ?: 0) else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as OptionalGroupInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && a != other.a) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.UnknownToTestAllTypes.OptionalGroup(") + if (presenceMask[0]) { + appendLine("${nextIndentString}a=${a},") + } else { + appendLine("${nextIndentString}a=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi companion object @@ -925,6 +3024,34 @@ class NullHypothesisProto2Internal: com.google.protobuf_test_messages.proto2.Nul @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as NullHypothesisProto2Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.NullHypothesisProto2(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.NullHypothesisProto2): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -957,6 +3084,34 @@ class EnumOnlyProto2Internal: com.google.protobuf_test_messages.proto2.EnumOnlyP @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as EnumOnlyProto2Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.EnumOnlyProto2(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.EnumOnlyProto2): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -993,7 +3148,42 @@ class OneStringProto2Internal: com.google.protobuf_test_messages.proto2.OneStrin @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var data: String? = null + override var data: String? by MsgFieldDelegate(PresenceIndices.data) { null } + + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) (data?.hashCode() ?: 0) else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as OneStringProto2Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && data != other.data) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.OneStringProto2(") + if (presenceMask[0]) { + appendLine("${nextIndentString}data=${data},") + } else { + appendLine("${nextIndentString}data=,") + } + + append("${indentString})") + } + } @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { @@ -1032,10 +3222,57 @@ class ProtoWithKeywordsInternal: com.google.protobuf_test_messages.proto2.ProtoW @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } - override var inline: Int? = null - override var concept: String? = null + override var inline: Int? by MsgFieldDelegate(PresenceIndices.inline) { null } + override var concept: String? by MsgFieldDelegate(PresenceIndices.concept) { null } override var requires: List by MsgFieldDelegate { mutableListOf() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) (inline?.hashCode() ?: 0) else 0 + result = 31 * result + if (presenceMask[1]) (concept?.hashCode() ?: 0) else 0 + result = 31 * result + requires.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ProtoWithKeywordsInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && inline != other.inline) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && concept != other.concept) return false + if (requires != other.requires) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.ProtoWithKeywords(") + if (presenceMask[0]) { + appendLine("${nextIndentString}inline=${inline},") + } else { + appendLine("${nextIndentString}inline=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}concept=${concept},") + } else { + appendLine("${nextIndentString}concept=,") + } + + appendLine("${nextIndentString}requires=${requires},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.ProtoWithKeywords): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1154,6 +3391,346 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.prot override var defaultString: String by MsgFieldDelegate(PresenceIndices.defaultString) { "Rosebud" } override var defaultBytes: ByteArray by MsgFieldDelegate(PresenceIndices.defaultBytes) { BytesDefaults.defaultBytes } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) requiredInt32.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) requiredInt64.hashCode() else 0 + result = 31 * result + if (presenceMask[2]) requiredUint32.hashCode() else 0 + result = 31 * result + if (presenceMask[3]) requiredUint64.hashCode() else 0 + result = 31 * result + if (presenceMask[4]) requiredSint32.hashCode() else 0 + result = 31 * result + if (presenceMask[5]) requiredSint64.hashCode() else 0 + result = 31 * result + if (presenceMask[6]) requiredFixed32.hashCode() else 0 + result = 31 * result + if (presenceMask[7]) requiredFixed64.hashCode() else 0 + result = 31 * result + if (presenceMask[8]) requiredSfixed32.hashCode() else 0 + result = 31 * result + if (presenceMask[9]) requiredSfixed64.hashCode() else 0 + result = 31 * result + if (presenceMask[10]) requiredFloat.hashCode() else 0 + result = 31 * result + if (presenceMask[11]) requiredDouble.hashCode() else 0 + result = 31 * result + if (presenceMask[12]) requiredBool.hashCode() else 0 + result = 31 * result + if (presenceMask[13]) requiredString.hashCode() else 0 + result = 31 * result + if (presenceMask[14]) requiredBytes.contentHashCode() else 0 + result = 31 * result + if (presenceMask[15]) requiredNestedMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[16]) requiredForeignMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[17]) requiredNestedEnum.hashCode() else 0 + result = 31 * result + if (presenceMask[18]) requiredForeignEnum.hashCode() else 0 + result = 31 * result + if (presenceMask[19]) requiredStringPiece.hashCode() else 0 + result = 31 * result + if (presenceMask[20]) requiredCord.hashCode() else 0 + result = 31 * result + if (presenceMask[21]) recursiveMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[22]) optionalRecursiveMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[23]) data.hashCode() else 0 + result = 31 * result + if (presenceMask[24]) defaultInt32.hashCode() else 0 + result = 31 * result + if (presenceMask[25]) defaultInt64.hashCode() else 0 + result = 31 * result + if (presenceMask[26]) defaultUint32.hashCode() else 0 + result = 31 * result + if (presenceMask[27]) defaultUint64.hashCode() else 0 + result = 31 * result + if (presenceMask[28]) defaultSint32.hashCode() else 0 + result = 31 * result + if (presenceMask[29]) defaultSint64.hashCode() else 0 + result = 31 * result + if (presenceMask[30]) defaultFixed32.hashCode() else 0 + result = 31 * result + if (presenceMask[31]) defaultFixed64.hashCode() else 0 + result = 31 * result + if (presenceMask[32]) defaultSfixed32.hashCode() else 0 + result = 31 * result + if (presenceMask[33]) defaultSfixed64.hashCode() else 0 + result = 31 * result + if (presenceMask[34]) defaultFloat.hashCode() else 0 + result = 31 * result + if (presenceMask[35]) defaultDouble.hashCode() else 0 + result = 31 * result + if (presenceMask[36]) defaultBool.hashCode() else 0 + result = 31 * result + if (presenceMask[37]) defaultString.hashCode() else 0 + result = 31 * result + if (presenceMask[38]) defaultBytes.contentHashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as TestAllRequiredTypesProto2Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && requiredInt32 != other.requiredInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && requiredInt64 != other.requiredInt64) return false + if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && requiredUint32 != other.requiredUint32) return false + if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && requiredUint64 != other.requiredUint64) return false + if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && requiredSint32 != other.requiredSint32) return false + if (presenceMask[5] != other.presenceMask[5] || presenceMask[5] && requiredSint64 != other.requiredSint64) return false + if (presenceMask[6] != other.presenceMask[6] || presenceMask[6] && requiredFixed32 != other.requiredFixed32) return false + if (presenceMask[7] != other.presenceMask[7] || presenceMask[7] && requiredFixed64 != other.requiredFixed64) return false + if (presenceMask[8] != other.presenceMask[8] || presenceMask[8] && requiredSfixed32 != other.requiredSfixed32) return false + if (presenceMask[9] != other.presenceMask[9] || presenceMask[9] && requiredSfixed64 != other.requiredSfixed64) return false + if (presenceMask[10] != other.presenceMask[10] || presenceMask[10] && requiredFloat != other.requiredFloat) return false + if (presenceMask[11] != other.presenceMask[11] || presenceMask[11] && requiredDouble != other.requiredDouble) return false + if (presenceMask[12] != other.presenceMask[12] || presenceMask[12] && requiredBool != other.requiredBool) return false + if (presenceMask[13] != other.presenceMask[13] || presenceMask[13] && requiredString != other.requiredString) return false + if (presenceMask[14] != other.presenceMask[14] || presenceMask[14] && !requiredBytes.contentEquals(other.requiredBytes)) return false + if (presenceMask[15] != other.presenceMask[15] || presenceMask[15] && requiredNestedMessage != other.requiredNestedMessage) return false + if (presenceMask[16] != other.presenceMask[16] || presenceMask[16] && requiredForeignMessage != other.requiredForeignMessage) return false + if (presenceMask[17] != other.presenceMask[17] || presenceMask[17] && requiredNestedEnum != other.requiredNestedEnum) return false + if (presenceMask[18] != other.presenceMask[18] || presenceMask[18] && requiredForeignEnum != other.requiredForeignEnum) return false + if (presenceMask[19] != other.presenceMask[19] || presenceMask[19] && requiredStringPiece != other.requiredStringPiece) return false + if (presenceMask[20] != other.presenceMask[20] || presenceMask[20] && requiredCord != other.requiredCord) return false + if (presenceMask[21] != other.presenceMask[21] || presenceMask[21] && recursiveMessage != other.recursiveMessage) return false + if (presenceMask[22] != other.presenceMask[22] || presenceMask[22] && optionalRecursiveMessage != other.optionalRecursiveMessage) return false + if (presenceMask[23] != other.presenceMask[23] || presenceMask[23] && data != other.data) return false + if (presenceMask[24] != other.presenceMask[24] || presenceMask[24] && defaultInt32 != other.defaultInt32) return false + if (presenceMask[25] != other.presenceMask[25] || presenceMask[25] && defaultInt64 != other.defaultInt64) return false + if (presenceMask[26] != other.presenceMask[26] || presenceMask[26] && defaultUint32 != other.defaultUint32) return false + if (presenceMask[27] != other.presenceMask[27] || presenceMask[27] && defaultUint64 != other.defaultUint64) return false + if (presenceMask[28] != other.presenceMask[28] || presenceMask[28] && defaultSint32 != other.defaultSint32) return false + if (presenceMask[29] != other.presenceMask[29] || presenceMask[29] && defaultSint64 != other.defaultSint64) return false + if (presenceMask[30] != other.presenceMask[30] || presenceMask[30] && defaultFixed32 != other.defaultFixed32) return false + if (presenceMask[31] != other.presenceMask[31] || presenceMask[31] && defaultFixed64 != other.defaultFixed64) return false + if (presenceMask[32] != other.presenceMask[32] || presenceMask[32] && defaultSfixed32 != other.defaultSfixed32) return false + if (presenceMask[33] != other.presenceMask[33] || presenceMask[33] && defaultSfixed64 != other.defaultSfixed64) return false + if (presenceMask[34] != other.presenceMask[34] || presenceMask[34] && defaultFloat != other.defaultFloat) return false + if (presenceMask[35] != other.presenceMask[35] || presenceMask[35] && defaultDouble != other.defaultDouble) return false + if (presenceMask[36] != other.presenceMask[36] || presenceMask[36] && defaultBool != other.defaultBool) return false + if (presenceMask[37] != other.presenceMask[37] || presenceMask[37] && defaultString != other.defaultString) return false + if (presenceMask[38] != other.presenceMask[38] || presenceMask[38] && !defaultBytes.contentEquals(other.defaultBytes)) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2(") + if (presenceMask[0]) { + appendLine("${nextIndentString}requiredInt32=${requiredInt32},") + } else { + appendLine("${nextIndentString}requiredInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}requiredInt64=${requiredInt64},") + } else { + appendLine("${nextIndentString}requiredInt64=,") + } + + if (presenceMask[2]) { + appendLine("${nextIndentString}requiredUint32=${requiredUint32},") + } else { + appendLine("${nextIndentString}requiredUint32=,") + } + + if (presenceMask[3]) { + appendLine("${nextIndentString}requiredUint64=${requiredUint64},") + } else { + appendLine("${nextIndentString}requiredUint64=,") + } + + if (presenceMask[4]) { + appendLine("${nextIndentString}requiredSint32=${requiredSint32},") + } else { + appendLine("${nextIndentString}requiredSint32=,") + } + + if (presenceMask[5]) { + appendLine("${nextIndentString}requiredSint64=${requiredSint64},") + } else { + appendLine("${nextIndentString}requiredSint64=,") + } + + if (presenceMask[6]) { + appendLine("${nextIndentString}requiredFixed32=${requiredFixed32},") + } else { + appendLine("${nextIndentString}requiredFixed32=,") + } + + if (presenceMask[7]) { + appendLine("${nextIndentString}requiredFixed64=${requiredFixed64},") + } else { + appendLine("${nextIndentString}requiredFixed64=,") + } + + if (presenceMask[8]) { + appendLine("${nextIndentString}requiredSfixed32=${requiredSfixed32},") + } else { + appendLine("${nextIndentString}requiredSfixed32=,") + } + + if (presenceMask[9]) { + appendLine("${nextIndentString}requiredSfixed64=${requiredSfixed64},") + } else { + appendLine("${nextIndentString}requiredSfixed64=,") + } + + if (presenceMask[10]) { + appendLine("${nextIndentString}requiredFloat=${requiredFloat},") + } else { + appendLine("${nextIndentString}requiredFloat=,") + } + + if (presenceMask[11]) { + appendLine("${nextIndentString}requiredDouble=${requiredDouble},") + } else { + appendLine("${nextIndentString}requiredDouble=,") + } + + if (presenceMask[12]) { + appendLine("${nextIndentString}requiredBool=${requiredBool},") + } else { + appendLine("${nextIndentString}requiredBool=,") + } + + if (presenceMask[13]) { + appendLine("${nextIndentString}requiredString=${requiredString},") + } else { + appendLine("${nextIndentString}requiredString=,") + } + + if (presenceMask[14]) { + appendLine("${nextIndentString}requiredBytes=${requiredBytes.contentToString()},") + } else { + appendLine("${nextIndentString}requiredBytes=,") + } + + if (presenceMask[15]) { + appendLine("${nextIndentString}requiredNestedMessage=${requiredNestedMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}requiredNestedMessage=,") + } + + if (presenceMask[16]) { + appendLine("${nextIndentString}requiredForeignMessage=${requiredForeignMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}requiredForeignMessage=,") + } + + if (presenceMask[17]) { + appendLine("${nextIndentString}requiredNestedEnum=${requiredNestedEnum},") + } else { + appendLine("${nextIndentString}requiredNestedEnum=,") + } + + if (presenceMask[18]) { + appendLine("${nextIndentString}requiredForeignEnum=${requiredForeignEnum},") + } else { + appendLine("${nextIndentString}requiredForeignEnum=,") + } + + if (presenceMask[19]) { + appendLine("${nextIndentString}requiredStringPiece=${requiredStringPiece},") + } else { + appendLine("${nextIndentString}requiredStringPiece=,") + } + + if (presenceMask[20]) { + appendLine("${nextIndentString}requiredCord=${requiredCord},") + } else { + appendLine("${nextIndentString}requiredCord=,") + } + + if (presenceMask[21]) { + appendLine("${nextIndentString}recursiveMessage=${recursiveMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}recursiveMessage=,") + } + + if (presenceMask[22]) { + appendLine("${nextIndentString}optionalRecursiveMessage=${optionalRecursiveMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalRecursiveMessage=,") + } + + if (presenceMask[23]) { + appendLine("${nextIndentString}data=${data.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}data=,") + } + + if (presenceMask[24]) { + appendLine("${nextIndentString}defaultInt32=${defaultInt32},") + } else { + appendLine("${nextIndentString}defaultInt32=,") + } + + if (presenceMask[25]) { + appendLine("${nextIndentString}defaultInt64=${defaultInt64},") + } else { + appendLine("${nextIndentString}defaultInt64=,") + } + + if (presenceMask[26]) { + appendLine("${nextIndentString}defaultUint32=${defaultUint32},") + } else { + appendLine("${nextIndentString}defaultUint32=,") + } + + if (presenceMask[27]) { + appendLine("${nextIndentString}defaultUint64=${defaultUint64},") + } else { + appendLine("${nextIndentString}defaultUint64=,") + } + + if (presenceMask[28]) { + appendLine("${nextIndentString}defaultSint32=${defaultSint32},") + } else { + appendLine("${nextIndentString}defaultSint32=,") + } + + if (presenceMask[29]) { + appendLine("${nextIndentString}defaultSint64=${defaultSint64},") + } else { + appendLine("${nextIndentString}defaultSint64=,") + } + + if (presenceMask[30]) { + appendLine("${nextIndentString}defaultFixed32=${defaultFixed32},") + } else { + appendLine("${nextIndentString}defaultFixed32=,") + } + + if (presenceMask[31]) { + appendLine("${nextIndentString}defaultFixed64=${defaultFixed64},") + } else { + appendLine("${nextIndentString}defaultFixed64=,") + } + + if (presenceMask[32]) { + appendLine("${nextIndentString}defaultSfixed32=${defaultSfixed32},") + } else { + appendLine("${nextIndentString}defaultSfixed32=,") + } + + if (presenceMask[33]) { + appendLine("${nextIndentString}defaultSfixed64=${defaultSfixed64},") + } else { + appendLine("${nextIndentString}defaultSfixed64=,") + } + + if (presenceMask[34]) { + appendLine("${nextIndentString}defaultFloat=${defaultFloat},") + } else { + appendLine("${nextIndentString}defaultFloat=,") + } + + if (presenceMask[35]) { + appendLine("${nextIndentString}defaultDouble=${defaultDouble},") + } else { + appendLine("${nextIndentString}defaultDouble=,") + } + + if (presenceMask[36]) { + appendLine("${nextIndentString}defaultBool=${defaultBool},") + } else { + appendLine("${nextIndentString}defaultBool=,") + } + + if (presenceMask[37]) { + appendLine("${nextIndentString}defaultString=${defaultString},") + } else { + appendLine("${nextIndentString}defaultString=,") + } + + if (presenceMask[38]) { + appendLine("${nextIndentString}defaultBytes=${defaultBytes.contentToString()},") + } else { + appendLine("${nextIndentString}defaultBytes=,") + } + + append("${indentString})") + } + } + class NestedMessageInternal: com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedMessage, kotlinx.rpc.protobuf.internal.InternalMessage(fieldsWithPresence = 3) { private object PresenceIndices { const val a: Int = 0 @@ -1168,6 +3745,58 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.prot override var corecursive: com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2 by MsgFieldDelegate(PresenceIndices.corecursive) { com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2Internal() } override var optionalCorecursive: com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2 by MsgFieldDelegate(PresenceIndices.optionalCorecursive) { com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2Internal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) a.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) corecursive.hashCode() else 0 + result = 31 * result + if (presenceMask[2]) optionalCorecursive.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as NestedMessageInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && a != other.a) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && corecursive != other.corecursive) return false + if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && optionalCorecursive != other.optionalCorecursive) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedMessage(") + if (presenceMask[0]) { + appendLine("${nextIndentString}a=${a},") + } else { + appendLine("${nextIndentString}a=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}corecursive=${corecursive.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}corecursive=,") + } + + if (presenceMask[2]) { + appendLine("${nextIndentString}optionalCorecursive=${optionalCorecursive.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalCorecursive=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2.NestedMessage): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1208,6 +3837,50 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.prot override var groupInt32: Int by MsgFieldDelegate(PresenceIndices.groupInt32) { 0 } override var groupUint32: UInt by MsgFieldDelegate(PresenceIndices.groupUint32) { 0u } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = if (presenceMask[0]) groupInt32.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) groupUint32.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as DataInternal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2.Data(") + if (presenceMask[0]) { + appendLine("${nextIndentString}groupInt32=${groupInt32},") + } else { + appendLine("${nextIndentString}groupInt32=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}groupUint32=${groupUint32},") + } else { + appendLine("${nextIndentString}groupUint32=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -1216,6 +3889,34 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.prot @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MessageSetCorrectInternal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrect(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrect): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1254,6 +3955,41 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.prot override var str: String by MsgFieldDelegate(PresenceIndices.str) { "" } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) str.hashCode() else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MessageSetCorrectExtension1Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && str != other.str) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1(") + if (presenceMask[0]) { + appendLine("${nextIndentString}str=${str},") + } else { + appendLine("${nextIndentString}str=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension1): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1292,6 +4028,41 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.prot override var i: Int by MsgFieldDelegate(PresenceIndices.i) { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return if (presenceMask[0]) i.hashCode() else 0 + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MessageSetCorrectExtension2Internal + other.checkRequiredFields() + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && i != other.i) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2(") + if (presenceMask[0]) { + appendLine("${nextIndentString}i=${i},") + } else { + appendLine("${nextIndentString}i=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.TestAllRequiredTypesProto2.MessageSetCorrectExtension2): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1354,10 +4125,80 @@ class TestLargeOneofInternal: com.google.protobuf_test_messages.proto2.TestLarge override var largeOneof: com.google.protobuf_test_messages.proto2.TestLargeOneof.LargeOneof? = null + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return (largeOneof?.oneOfHashCode() ?: 0) + } + + fun com.google.protobuf_test_messages.proto2.TestLargeOneof.LargeOneof.oneOfHashCode(): kotlin.Int { + val offset = when (this) { + is com.google.protobuf_test_messages.proto2.TestLargeOneof.LargeOneof.A1 -> 0 + is com.google.protobuf_test_messages.proto2.TestLargeOneof.LargeOneof.A2 -> 1 + is com.google.protobuf_test_messages.proto2.TestLargeOneof.LargeOneof.A3 -> 2 + is com.google.protobuf_test_messages.proto2.TestLargeOneof.LargeOneof.A4 -> 3 + is com.google.protobuf_test_messages.proto2.TestLargeOneof.LargeOneof.A5 -> 4 + } + + return hashCode() + offset + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as TestLargeOneofInternal + other.checkRequiredFields() + if (largeOneof != other.largeOneof) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestLargeOneof(") + appendLine("${nextIndentString}largeOneof=${largeOneof},") + append("${indentString})") + } + } + class A1Internal: com.google.protobuf_test_messages.proto2.TestLargeOneof.A1, kotlinx.rpc.protobuf.internal.InternalMessage(fieldsWithPresence = 0) { @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as A1Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestLargeOneof.A1(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.TestLargeOneof.A1): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1390,6 +4231,34 @@ class TestLargeOneofInternal: com.google.protobuf_test_messages.proto2.TestLarge @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as A2Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestLargeOneof.A2(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.TestLargeOneof.A2): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1422,6 +4291,34 @@ class TestLargeOneofInternal: com.google.protobuf_test_messages.proto2.TestLarge @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as A3Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestLargeOneof.A3(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.TestLargeOneof.A3): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1454,6 +4351,34 @@ class TestLargeOneofInternal: com.google.protobuf_test_messages.proto2.TestLarge @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as A4Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestLargeOneof.A4(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.TestLargeOneof.A4): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -1486,6 +4411,34 @@ class TestLargeOneofInternal: com.google.protobuf_test_messages.proto2.TestLarge @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as A5Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto2.TestLargeOneof.A5(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto2.TestLargeOneof.A5): kotlinx.rpc.protobuf.input.stream.InputStream { diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto3/TestMessagesProto3.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto3/TestMessagesProto3.kt index 74d236b77..263145e6c 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto3/TestMessagesProto3.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto3/TestMessagesProto3.kt @@ -229,16 +229,16 @@ interface TestAllTypesProto3 { } sealed class NestedEnum(open val number: Int) { - object FOO: NestedEnum(number = 0) + data object FOO: NestedEnum(number = 0) - object BAR: NestedEnum(number = 1) + data object BAR: NestedEnum(number = 1) - object BAZ: NestedEnum(number = 2) + data object BAZ: NestedEnum(number = 2) /** * Intentionally negative. */ - object NEG: NestedEnum(number = -1) + data object NEG: NestedEnum(number = -1) data class UNRECOGNIZED(override val number: Int): NestedEnum(number) @@ -248,11 +248,11 @@ interface TestAllTypesProto3 { } sealed class AliasedEnum(open val number: Int) { - object ALIAS_FOO: AliasedEnum(number = 0) + data object ALIAS_FOO: AliasedEnum(number = 0) - object ALIAS_BAR: AliasedEnum(number = 1) + data object ALIAS_BAR: AliasedEnum(number = 1) - object ALIAS_BAZ: AliasedEnum(number = 2) + data object ALIAS_BAZ: AliasedEnum(number = 2) data class UNRECOGNIZED(override val number: Int): AliasedEnum(number) @@ -285,9 +285,9 @@ interface NullHypothesisProto3 { @kotlinx.rpc.grpc.codec.WithCodec(com.google.protobuf_test_messages.proto3.EnumOnlyProto3Internal.CODEC::class) interface EnumOnlyProto3 { sealed class Bool(open val number: Int) { - object kFalse: Bool(number = 0) + data object kFalse: Bool(number = 0) - object kTrue: Bool(number = 1) + data object kTrue: Bool(number = 1) data class UNRECOGNIZED(override val number: Int): Bool(number) @@ -300,11 +300,11 @@ interface EnumOnlyProto3 { } sealed class ForeignEnum(open val number: Int) { - object FOREIGN_FOO: ForeignEnum(number = 0) + data object FOREIGN_FOO: ForeignEnum(number = 0) - object FOREIGN_BAR: ForeignEnum(number = 1) + data object FOREIGN_BAR: ForeignEnum(number = 1) - object FOREIGN_BAZ: ForeignEnum(number = 2) + data object FOREIGN_BAZ: ForeignEnum(number = 2) data class UNRECOGNIZED(override val number: Int): ForeignEnum(number) diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto3/_rpc_internal/TestMessagesProto3.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto3/_rpc_internal/TestMessagesProto3.kt index 09b8cb04c..7d67fdd0f 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto3/_rpc_internal/TestMessagesProto3.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto3/_rpc_internal/TestMessagesProto3.kt @@ -174,6 +174,567 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA override var FieldName18__: Int by MsgFieldDelegate { 0 } override var oneofField: com.google.protobuf_test_messages.proto3.TestAllTypesProto3.OneofField? = null + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = optionalInt32.hashCode() + result = 31 * result + optionalInt64.hashCode() + result = 31 * result + optionalUint32.hashCode() + result = 31 * result + optionalUint64.hashCode() + result = 31 * result + optionalSint32.hashCode() + result = 31 * result + optionalSint64.hashCode() + result = 31 * result + optionalFixed32.hashCode() + result = 31 * result + optionalFixed64.hashCode() + result = 31 * result + optionalSfixed32.hashCode() + result = 31 * result + optionalSfixed64.hashCode() + result = 31 * result + optionalFloat.hashCode() + result = 31 * result + optionalDouble.hashCode() + result = 31 * result + optionalBool.hashCode() + result = 31 * result + optionalString.hashCode() + result = 31 * result + optionalBytes.contentHashCode() + result = 31 * result + if (presenceMask[0]) optionalNestedMessage.hashCode() else 0 + result = 31 * result + if (presenceMask[1]) optionalForeignMessage.hashCode() else 0 + result = 31 * result + optionalNestedEnum.hashCode() + result = 31 * result + optionalForeignEnum.hashCode() + result = 31 * result + optionalAliasedEnum.hashCode() + result = 31 * result + optionalStringPiece.hashCode() + result = 31 * result + optionalCord.hashCode() + result = 31 * result + if (presenceMask[2]) recursiveMessage.hashCode() else 0 + result = 31 * result + repeatedInt32.hashCode() + result = 31 * result + repeatedInt64.hashCode() + result = 31 * result + repeatedUint32.hashCode() + result = 31 * result + repeatedUint64.hashCode() + result = 31 * result + repeatedSint32.hashCode() + result = 31 * result + repeatedSint64.hashCode() + result = 31 * result + repeatedFixed32.hashCode() + result = 31 * result + repeatedFixed64.hashCode() + result = 31 * result + repeatedSfixed32.hashCode() + result = 31 * result + repeatedSfixed64.hashCode() + result = 31 * result + repeatedFloat.hashCode() + result = 31 * result + repeatedDouble.hashCode() + result = 31 * result + repeatedBool.hashCode() + result = 31 * result + repeatedString.hashCode() + result = 31 * result + repeatedBytes.hashCode() + result = 31 * result + repeatedNestedMessage.hashCode() + result = 31 * result + repeatedForeignMessage.hashCode() + result = 31 * result + repeatedNestedEnum.hashCode() + result = 31 * result + repeatedForeignEnum.hashCode() + result = 31 * result + repeatedStringPiece.hashCode() + result = 31 * result + repeatedCord.hashCode() + result = 31 * result + packedInt32.hashCode() + result = 31 * result + packedInt64.hashCode() + result = 31 * result + packedUint32.hashCode() + result = 31 * result + packedUint64.hashCode() + result = 31 * result + packedSint32.hashCode() + result = 31 * result + packedSint64.hashCode() + result = 31 * result + packedFixed32.hashCode() + result = 31 * result + packedFixed64.hashCode() + result = 31 * result + packedSfixed32.hashCode() + result = 31 * result + packedSfixed64.hashCode() + result = 31 * result + packedFloat.hashCode() + result = 31 * result + packedDouble.hashCode() + result = 31 * result + packedBool.hashCode() + result = 31 * result + packedNestedEnum.hashCode() + result = 31 * result + unpackedInt32.hashCode() + result = 31 * result + unpackedInt64.hashCode() + result = 31 * result + unpackedUint32.hashCode() + result = 31 * result + unpackedUint64.hashCode() + result = 31 * result + unpackedSint32.hashCode() + result = 31 * result + unpackedSint64.hashCode() + result = 31 * result + unpackedFixed32.hashCode() + result = 31 * result + unpackedFixed64.hashCode() + result = 31 * result + unpackedSfixed32.hashCode() + result = 31 * result + unpackedSfixed64.hashCode() + result = 31 * result + unpackedFloat.hashCode() + result = 31 * result + unpackedDouble.hashCode() + result = 31 * result + unpackedBool.hashCode() + result = 31 * result + unpackedNestedEnum.hashCode() + result = 31 * result + mapInt32Int32.hashCode() + result = 31 * result + mapInt64Int64.hashCode() + result = 31 * result + mapUint32Uint32.hashCode() + result = 31 * result + mapUint64Uint64.hashCode() + result = 31 * result + mapSint32Sint32.hashCode() + result = 31 * result + mapSint64Sint64.hashCode() + result = 31 * result + mapFixed32Fixed32.hashCode() + result = 31 * result + mapFixed64Fixed64.hashCode() + result = 31 * result + mapSfixed32Sfixed32.hashCode() + result = 31 * result + mapSfixed64Sfixed64.hashCode() + result = 31 * result + mapInt32Float.hashCode() + result = 31 * result + mapInt32Double.hashCode() + result = 31 * result + mapBoolBool.hashCode() + result = 31 * result + mapStringString.hashCode() + result = 31 * result + mapStringBytes.hashCode() + result = 31 * result + mapStringNestedMessage.hashCode() + result = 31 * result + mapStringForeignMessage.hashCode() + result = 31 * result + mapStringNestedEnum.hashCode() + result = 31 * result + mapStringForeignEnum.hashCode() + result = 31 * result + if (presenceMask[3]) optionalBoolWrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[4]) optionalInt32Wrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[5]) optionalInt64Wrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[6]) optionalUint32Wrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[7]) optionalUint64Wrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[8]) optionalFloatWrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[9]) optionalDoubleWrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[10]) optionalStringWrapper.hashCode() else 0 + result = 31 * result + if (presenceMask[11]) optionalBytesWrapper.hashCode() else 0 + result = 31 * result + repeatedBoolWrapper.hashCode() + result = 31 * result + repeatedInt32Wrapper.hashCode() + result = 31 * result + repeatedInt64Wrapper.hashCode() + result = 31 * result + repeatedUint32Wrapper.hashCode() + result = 31 * result + repeatedUint64Wrapper.hashCode() + result = 31 * result + repeatedFloatWrapper.hashCode() + result = 31 * result + repeatedDoubleWrapper.hashCode() + result = 31 * result + repeatedStringWrapper.hashCode() + result = 31 * result + repeatedBytesWrapper.hashCode() + result = 31 * result + if (presenceMask[12]) optionalDuration.hashCode() else 0 + result = 31 * result + if (presenceMask[13]) optionalTimestamp.hashCode() else 0 + result = 31 * result + if (presenceMask[14]) optionalFieldMask.hashCode() else 0 + result = 31 * result + if (presenceMask[15]) optionalStruct.hashCode() else 0 + result = 31 * result + if (presenceMask[16]) optionalAny.hashCode() else 0 + result = 31 * result + if (presenceMask[17]) optionalValue.hashCode() else 0 + result = 31 * result + optionalNullValue.hashCode() + result = 31 * result + repeatedDuration.hashCode() + result = 31 * result + repeatedTimestamp.hashCode() + result = 31 * result + repeatedFieldmask.hashCode() + result = 31 * result + repeatedStruct.hashCode() + result = 31 * result + repeatedAny.hashCode() + result = 31 * result + repeatedValue.hashCode() + result = 31 * result + repeatedListValue.hashCode() + result = 31 * result + fieldname1.hashCode() + result = 31 * result + fieldName2.hashCode() + result = 31 * result + FieldName3.hashCode() + result = 31 * result + field_Name4_.hashCode() + result = 31 * result + field0name5.hashCode() + result = 31 * result + field_0Name6.hashCode() + result = 31 * result + fieldName7.hashCode() + result = 31 * result + FieldName8.hashCode() + result = 31 * result + field_Name9.hashCode() + result = 31 * result + Field_Name10.hashCode() + result = 31 * result + FIELD_NAME11.hashCode() + result = 31 * result + FIELDName12.hashCode() + result = 31 * result + _FieldName13.hashCode() + result = 31 * result + __FieldName14.hashCode() + result = 31 * result + field_Name15.hashCode() + result = 31 * result + field__Name16.hashCode() + result = 31 * result + fieldName17__.hashCode() + result = 31 * result + FieldName18__.hashCode() + result = 31 * result + (oneofField?.oneOfHashCode() ?: 0) + return result + } + + fun com.google.protobuf_test_messages.proto3.TestAllTypesProto3.OneofField.oneOfHashCode(): kotlin.Int { + val offset = when (this) { + is com.google.protobuf_test_messages.proto3.TestAllTypesProto3.OneofField.OneofUint32 -> 0 + is com.google.protobuf_test_messages.proto3.TestAllTypesProto3.OneofField.OneofNestedMessage -> 1 + is com.google.protobuf_test_messages.proto3.TestAllTypesProto3.OneofField.OneofString -> 2 + is com.google.protobuf_test_messages.proto3.TestAllTypesProto3.OneofField.OneofBytes -> 3 + is com.google.protobuf_test_messages.proto3.TestAllTypesProto3.OneofField.OneofBool -> 4 + is com.google.protobuf_test_messages.proto3.TestAllTypesProto3.OneofField.OneofUint64 -> 5 + is com.google.protobuf_test_messages.proto3.TestAllTypesProto3.OneofField.OneofFloat -> 6 + is com.google.protobuf_test_messages.proto3.TestAllTypesProto3.OneofField.OneofDouble -> 7 + is com.google.protobuf_test_messages.proto3.TestAllTypesProto3.OneofField.OneofEnum -> 8 + is com.google.protobuf_test_messages.proto3.TestAllTypesProto3.OneofField.OneofNullValue -> 9 + } + + return hashCode() + offset + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as TestAllTypesProto3Internal + other.checkRequiredFields() + if (optionalInt32 != other.optionalInt32) return false + if (optionalInt64 != other.optionalInt64) return false + if (optionalUint32 != other.optionalUint32) return false + if (optionalUint64 != other.optionalUint64) return false + if (optionalSint32 != other.optionalSint32) return false + if (optionalSint64 != other.optionalSint64) return false + if (optionalFixed32 != other.optionalFixed32) return false + if (optionalFixed64 != other.optionalFixed64) return false + if (optionalSfixed32 != other.optionalSfixed32) return false + if (optionalSfixed64 != other.optionalSfixed64) return false + if (optionalFloat != other.optionalFloat) return false + if (optionalDouble != other.optionalDouble) return false + if (optionalBool != other.optionalBool) return false + if (optionalString != other.optionalString) return false + if (!optionalBytes.contentEquals(other.optionalBytes)) return false + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && optionalNestedMessage != other.optionalNestedMessage) return false + if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && optionalForeignMessage != other.optionalForeignMessage) return false + if (optionalNestedEnum != other.optionalNestedEnum) return false + if (optionalForeignEnum != other.optionalForeignEnum) return false + if (optionalAliasedEnum != other.optionalAliasedEnum) return false + if (optionalStringPiece != other.optionalStringPiece) return false + if (optionalCord != other.optionalCord) return false + if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && recursiveMessage != other.recursiveMessage) return false + if (repeatedInt32 != other.repeatedInt32) return false + if (repeatedInt64 != other.repeatedInt64) return false + if (repeatedUint32 != other.repeatedUint32) return false + if (repeatedUint64 != other.repeatedUint64) return false + if (repeatedSint32 != other.repeatedSint32) return false + if (repeatedSint64 != other.repeatedSint64) return false + if (repeatedFixed32 != other.repeatedFixed32) return false + if (repeatedFixed64 != other.repeatedFixed64) return false + if (repeatedSfixed32 != other.repeatedSfixed32) return false + if (repeatedSfixed64 != other.repeatedSfixed64) return false + if (repeatedFloat != other.repeatedFloat) return false + if (repeatedDouble != other.repeatedDouble) return false + if (repeatedBool != other.repeatedBool) return false + if (repeatedString != other.repeatedString) return false + if (repeatedBytes != other.repeatedBytes) return false + if (repeatedNestedMessage != other.repeatedNestedMessage) return false + if (repeatedForeignMessage != other.repeatedForeignMessage) return false + if (repeatedNestedEnum != other.repeatedNestedEnum) return false + if (repeatedForeignEnum != other.repeatedForeignEnum) return false + if (repeatedStringPiece != other.repeatedStringPiece) return false + if (repeatedCord != other.repeatedCord) return false + if (packedInt32 != other.packedInt32) return false + if (packedInt64 != other.packedInt64) return false + if (packedUint32 != other.packedUint32) return false + if (packedUint64 != other.packedUint64) return false + if (packedSint32 != other.packedSint32) return false + if (packedSint64 != other.packedSint64) return false + if (packedFixed32 != other.packedFixed32) return false + if (packedFixed64 != other.packedFixed64) return false + if (packedSfixed32 != other.packedSfixed32) return false + if (packedSfixed64 != other.packedSfixed64) return false + if (packedFloat != other.packedFloat) return false + if (packedDouble != other.packedDouble) return false + if (packedBool != other.packedBool) return false + if (packedNestedEnum != other.packedNestedEnum) return false + if (unpackedInt32 != other.unpackedInt32) return false + if (unpackedInt64 != other.unpackedInt64) return false + if (unpackedUint32 != other.unpackedUint32) return false + if (unpackedUint64 != other.unpackedUint64) return false + if (unpackedSint32 != other.unpackedSint32) return false + if (unpackedSint64 != other.unpackedSint64) return false + if (unpackedFixed32 != other.unpackedFixed32) return false + if (unpackedFixed64 != other.unpackedFixed64) return false + if (unpackedSfixed32 != other.unpackedSfixed32) return false + if (unpackedSfixed64 != other.unpackedSfixed64) return false + if (unpackedFloat != other.unpackedFloat) return false + if (unpackedDouble != other.unpackedDouble) return false + if (unpackedBool != other.unpackedBool) return false + if (unpackedNestedEnum != other.unpackedNestedEnum) return false + if (mapInt32Int32 != other.mapInt32Int32) return false + if (mapInt64Int64 != other.mapInt64Int64) return false + if (mapUint32Uint32 != other.mapUint32Uint32) return false + if (mapUint64Uint64 != other.mapUint64Uint64) return false + if (mapSint32Sint32 != other.mapSint32Sint32) return false + if (mapSint64Sint64 != other.mapSint64Sint64) return false + if (mapFixed32Fixed32 != other.mapFixed32Fixed32) return false + if (mapFixed64Fixed64 != other.mapFixed64Fixed64) return false + if (mapSfixed32Sfixed32 != other.mapSfixed32Sfixed32) return false + if (mapSfixed64Sfixed64 != other.mapSfixed64Sfixed64) return false + if (mapInt32Float != other.mapInt32Float) return false + if (mapInt32Double != other.mapInt32Double) return false + if (mapBoolBool != other.mapBoolBool) return false + if (mapStringString != other.mapStringString) return false + if (mapStringBytes != other.mapStringBytes) return false + if (mapStringNestedMessage != other.mapStringNestedMessage) return false + if (mapStringForeignMessage != other.mapStringForeignMessage) return false + if (mapStringNestedEnum != other.mapStringNestedEnum) return false + if (mapStringForeignEnum != other.mapStringForeignEnum) return false + if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && optionalBoolWrapper != other.optionalBoolWrapper) return false + if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && optionalInt32Wrapper != other.optionalInt32Wrapper) return false + if (presenceMask[5] != other.presenceMask[5] || presenceMask[5] && optionalInt64Wrapper != other.optionalInt64Wrapper) return false + if (presenceMask[6] != other.presenceMask[6] || presenceMask[6] && optionalUint32Wrapper != other.optionalUint32Wrapper) return false + if (presenceMask[7] != other.presenceMask[7] || presenceMask[7] && optionalUint64Wrapper != other.optionalUint64Wrapper) return false + if (presenceMask[8] != other.presenceMask[8] || presenceMask[8] && optionalFloatWrapper != other.optionalFloatWrapper) return false + if (presenceMask[9] != other.presenceMask[9] || presenceMask[9] && optionalDoubleWrapper != other.optionalDoubleWrapper) return false + if (presenceMask[10] != other.presenceMask[10] || presenceMask[10] && optionalStringWrapper != other.optionalStringWrapper) return false + if (presenceMask[11] != other.presenceMask[11] || presenceMask[11] && optionalBytesWrapper != other.optionalBytesWrapper) return false + if (repeatedBoolWrapper != other.repeatedBoolWrapper) return false + if (repeatedInt32Wrapper != other.repeatedInt32Wrapper) return false + if (repeatedInt64Wrapper != other.repeatedInt64Wrapper) return false + if (repeatedUint32Wrapper != other.repeatedUint32Wrapper) return false + if (repeatedUint64Wrapper != other.repeatedUint64Wrapper) return false + if (repeatedFloatWrapper != other.repeatedFloatWrapper) return false + if (repeatedDoubleWrapper != other.repeatedDoubleWrapper) return false + if (repeatedStringWrapper != other.repeatedStringWrapper) return false + if (repeatedBytesWrapper != other.repeatedBytesWrapper) return false + if (presenceMask[12] != other.presenceMask[12] || presenceMask[12] && optionalDuration != other.optionalDuration) return false + if (presenceMask[13] != other.presenceMask[13] || presenceMask[13] && optionalTimestamp != other.optionalTimestamp) return false + if (presenceMask[14] != other.presenceMask[14] || presenceMask[14] && optionalFieldMask != other.optionalFieldMask) return false + if (presenceMask[15] != other.presenceMask[15] || presenceMask[15] && optionalStruct != other.optionalStruct) return false + if (presenceMask[16] != other.presenceMask[16] || presenceMask[16] && optionalAny != other.optionalAny) return false + if (presenceMask[17] != other.presenceMask[17] || presenceMask[17] && optionalValue != other.optionalValue) return false + if (optionalNullValue != other.optionalNullValue) return false + if (repeatedDuration != other.repeatedDuration) return false + if (repeatedTimestamp != other.repeatedTimestamp) return false + if (repeatedFieldmask != other.repeatedFieldmask) return false + if (repeatedStruct != other.repeatedStruct) return false + if (repeatedAny != other.repeatedAny) return false + if (repeatedValue != other.repeatedValue) return false + if (repeatedListValue != other.repeatedListValue) return false + if (fieldname1 != other.fieldname1) return false + if (fieldName2 != other.fieldName2) return false + if (FieldName3 != other.FieldName3) return false + if (field_Name4_ != other.field_Name4_) return false + if (field0name5 != other.field0name5) return false + if (field_0Name6 != other.field_0Name6) return false + if (fieldName7 != other.fieldName7) return false + if (FieldName8 != other.FieldName8) return false + if (field_Name9 != other.field_Name9) return false + if (Field_Name10 != other.Field_Name10) return false + if (FIELD_NAME11 != other.FIELD_NAME11) return false + if (FIELDName12 != other.FIELDName12) return false + if (_FieldName13 != other._FieldName13) return false + if (__FieldName14 != other.__FieldName14) return false + if (field_Name15 != other.field_Name15) return false + if (field__Name16 != other.field__Name16) return false + if (fieldName17__ != other.fieldName17__) return false + if (FieldName18__ != other.FieldName18__) return false + if (oneofField != other.oneofField) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3(") + appendLine("${nextIndentString}optionalInt32=${optionalInt32},") + appendLine("${nextIndentString}optionalInt64=${optionalInt64},") + appendLine("${nextIndentString}optionalUint32=${optionalUint32},") + appendLine("${nextIndentString}optionalUint64=${optionalUint64},") + appendLine("${nextIndentString}optionalSint32=${optionalSint32},") + appendLine("${nextIndentString}optionalSint64=${optionalSint64},") + appendLine("${nextIndentString}optionalFixed32=${optionalFixed32},") + appendLine("${nextIndentString}optionalFixed64=${optionalFixed64},") + appendLine("${nextIndentString}optionalSfixed32=${optionalSfixed32},") + appendLine("${nextIndentString}optionalSfixed64=${optionalSfixed64},") + appendLine("${nextIndentString}optionalFloat=${optionalFloat},") + appendLine("${nextIndentString}optionalDouble=${optionalDouble},") + appendLine("${nextIndentString}optionalBool=${optionalBool},") + appendLine("${nextIndentString}optionalString=${optionalString},") + appendLine("${nextIndentString}optionalBytes=${optionalBytes.contentToString()},") + if (presenceMask[0]) { + appendLine("${nextIndentString}optionalNestedMessage=${optionalNestedMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalNestedMessage=,") + } + + if (presenceMask[1]) { + appendLine("${nextIndentString}optionalForeignMessage=${optionalForeignMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalForeignMessage=,") + } + + appendLine("${nextIndentString}optionalNestedEnum=${optionalNestedEnum},") + appendLine("${nextIndentString}optionalForeignEnum=${optionalForeignEnum},") + appendLine("${nextIndentString}optionalAliasedEnum=${optionalAliasedEnum},") + appendLine("${nextIndentString}optionalStringPiece=${optionalStringPiece},") + appendLine("${nextIndentString}optionalCord=${optionalCord},") + if (presenceMask[2]) { + appendLine("${nextIndentString}recursiveMessage=${recursiveMessage.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}recursiveMessage=,") + } + + appendLine("${nextIndentString}repeatedInt32=${repeatedInt32},") + appendLine("${nextIndentString}repeatedInt64=${repeatedInt64},") + appendLine("${nextIndentString}repeatedUint32=${repeatedUint32},") + appendLine("${nextIndentString}repeatedUint64=${repeatedUint64},") + appendLine("${nextIndentString}repeatedSint32=${repeatedSint32},") + appendLine("${nextIndentString}repeatedSint64=${repeatedSint64},") + appendLine("${nextIndentString}repeatedFixed32=${repeatedFixed32},") + appendLine("${nextIndentString}repeatedFixed64=${repeatedFixed64},") + appendLine("${nextIndentString}repeatedSfixed32=${repeatedSfixed32},") + appendLine("${nextIndentString}repeatedSfixed64=${repeatedSfixed64},") + appendLine("${nextIndentString}repeatedFloat=${repeatedFloat},") + appendLine("${nextIndentString}repeatedDouble=${repeatedDouble},") + appendLine("${nextIndentString}repeatedBool=${repeatedBool},") + appendLine("${nextIndentString}repeatedString=${repeatedString},") + appendLine("${nextIndentString}repeatedBytes=${repeatedBytes},") + appendLine("${nextIndentString}repeatedNestedMessage=${repeatedNestedMessage},") + appendLine("${nextIndentString}repeatedForeignMessage=${repeatedForeignMessage},") + appendLine("${nextIndentString}repeatedNestedEnum=${repeatedNestedEnum},") + appendLine("${nextIndentString}repeatedForeignEnum=${repeatedForeignEnum},") + appendLine("${nextIndentString}repeatedStringPiece=${repeatedStringPiece},") + appendLine("${nextIndentString}repeatedCord=${repeatedCord},") + appendLine("${nextIndentString}packedInt32=${packedInt32},") + appendLine("${nextIndentString}packedInt64=${packedInt64},") + appendLine("${nextIndentString}packedUint32=${packedUint32},") + appendLine("${nextIndentString}packedUint64=${packedUint64},") + appendLine("${nextIndentString}packedSint32=${packedSint32},") + appendLine("${nextIndentString}packedSint64=${packedSint64},") + appendLine("${nextIndentString}packedFixed32=${packedFixed32},") + appendLine("${nextIndentString}packedFixed64=${packedFixed64},") + appendLine("${nextIndentString}packedSfixed32=${packedSfixed32},") + appendLine("${nextIndentString}packedSfixed64=${packedSfixed64},") + appendLine("${nextIndentString}packedFloat=${packedFloat},") + appendLine("${nextIndentString}packedDouble=${packedDouble},") + appendLine("${nextIndentString}packedBool=${packedBool},") + appendLine("${nextIndentString}packedNestedEnum=${packedNestedEnum},") + appendLine("${nextIndentString}unpackedInt32=${unpackedInt32},") + appendLine("${nextIndentString}unpackedInt64=${unpackedInt64},") + appendLine("${nextIndentString}unpackedUint32=${unpackedUint32},") + appendLine("${nextIndentString}unpackedUint64=${unpackedUint64},") + appendLine("${nextIndentString}unpackedSint32=${unpackedSint32},") + appendLine("${nextIndentString}unpackedSint64=${unpackedSint64},") + appendLine("${nextIndentString}unpackedFixed32=${unpackedFixed32},") + appendLine("${nextIndentString}unpackedFixed64=${unpackedFixed64},") + appendLine("${nextIndentString}unpackedSfixed32=${unpackedSfixed32},") + appendLine("${nextIndentString}unpackedSfixed64=${unpackedSfixed64},") + appendLine("${nextIndentString}unpackedFloat=${unpackedFloat},") + appendLine("${nextIndentString}unpackedDouble=${unpackedDouble},") + appendLine("${nextIndentString}unpackedBool=${unpackedBool},") + appendLine("${nextIndentString}unpackedNestedEnum=${unpackedNestedEnum},") + appendLine("${nextIndentString}mapInt32Int32=${mapInt32Int32},") + appendLine("${nextIndentString}mapInt64Int64=${mapInt64Int64},") + appendLine("${nextIndentString}mapUint32Uint32=${mapUint32Uint32},") + appendLine("${nextIndentString}mapUint64Uint64=${mapUint64Uint64},") + appendLine("${nextIndentString}mapSint32Sint32=${mapSint32Sint32},") + appendLine("${nextIndentString}mapSint64Sint64=${mapSint64Sint64},") + appendLine("${nextIndentString}mapFixed32Fixed32=${mapFixed32Fixed32},") + appendLine("${nextIndentString}mapFixed64Fixed64=${mapFixed64Fixed64},") + appendLine("${nextIndentString}mapSfixed32Sfixed32=${mapSfixed32Sfixed32},") + appendLine("${nextIndentString}mapSfixed64Sfixed64=${mapSfixed64Sfixed64},") + appendLine("${nextIndentString}mapInt32Float=${mapInt32Float},") + appendLine("${nextIndentString}mapInt32Double=${mapInt32Double},") + appendLine("${nextIndentString}mapBoolBool=${mapBoolBool},") + appendLine("${nextIndentString}mapStringString=${mapStringString},") + appendLine("${nextIndentString}mapStringBytes=${mapStringBytes},") + appendLine("${nextIndentString}mapStringNestedMessage=${mapStringNestedMessage},") + appendLine("${nextIndentString}mapStringForeignMessage=${mapStringForeignMessage},") + appendLine("${nextIndentString}mapStringNestedEnum=${mapStringNestedEnum},") + appendLine("${nextIndentString}mapStringForeignEnum=${mapStringForeignEnum},") + if (presenceMask[3]) { + appendLine("${nextIndentString}optionalBoolWrapper=${optionalBoolWrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalBoolWrapper=,") + } + + if (presenceMask[4]) { + appendLine("${nextIndentString}optionalInt32Wrapper=${optionalInt32Wrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalInt32Wrapper=,") + } + + if (presenceMask[5]) { + appendLine("${nextIndentString}optionalInt64Wrapper=${optionalInt64Wrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalInt64Wrapper=,") + } + + if (presenceMask[6]) { + appendLine("${nextIndentString}optionalUint32Wrapper=${optionalUint32Wrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalUint32Wrapper=,") + } + + if (presenceMask[7]) { + appendLine("${nextIndentString}optionalUint64Wrapper=${optionalUint64Wrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalUint64Wrapper=,") + } + + if (presenceMask[8]) { + appendLine("${nextIndentString}optionalFloatWrapper=${optionalFloatWrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalFloatWrapper=,") + } + + if (presenceMask[9]) { + appendLine("${nextIndentString}optionalDoubleWrapper=${optionalDoubleWrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalDoubleWrapper=,") + } + + if (presenceMask[10]) { + appendLine("${nextIndentString}optionalStringWrapper=${optionalStringWrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalStringWrapper=,") + } + + if (presenceMask[11]) { + appendLine("${nextIndentString}optionalBytesWrapper=${optionalBytesWrapper.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalBytesWrapper=,") + } + + appendLine("${nextIndentString}repeatedBoolWrapper=${repeatedBoolWrapper},") + appendLine("${nextIndentString}repeatedInt32Wrapper=${repeatedInt32Wrapper},") + appendLine("${nextIndentString}repeatedInt64Wrapper=${repeatedInt64Wrapper},") + appendLine("${nextIndentString}repeatedUint32Wrapper=${repeatedUint32Wrapper},") + appendLine("${nextIndentString}repeatedUint64Wrapper=${repeatedUint64Wrapper},") + appendLine("${nextIndentString}repeatedFloatWrapper=${repeatedFloatWrapper},") + appendLine("${nextIndentString}repeatedDoubleWrapper=${repeatedDoubleWrapper},") + appendLine("${nextIndentString}repeatedStringWrapper=${repeatedStringWrapper},") + appendLine("${nextIndentString}repeatedBytesWrapper=${repeatedBytesWrapper},") + if (presenceMask[12]) { + appendLine("${nextIndentString}optionalDuration=${optionalDuration.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalDuration=,") + } + + if (presenceMask[13]) { + appendLine("${nextIndentString}optionalTimestamp=${optionalTimestamp.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalTimestamp=,") + } + + if (presenceMask[14]) { + appendLine("${nextIndentString}optionalFieldMask=${optionalFieldMask.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalFieldMask=,") + } + + if (presenceMask[15]) { + appendLine("${nextIndentString}optionalStruct=${optionalStruct.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalStruct=,") + } + + if (presenceMask[16]) { + appendLine("${nextIndentString}optionalAny=${optionalAny.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalAny=,") + } + + if (presenceMask[17]) { + appendLine("${nextIndentString}optionalValue=${optionalValue.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}optionalValue=,") + } + + appendLine("${nextIndentString}optionalNullValue=${optionalNullValue},") + appendLine("${nextIndentString}repeatedDuration=${repeatedDuration},") + appendLine("${nextIndentString}repeatedTimestamp=${repeatedTimestamp},") + appendLine("${nextIndentString}repeatedFieldmask=${repeatedFieldmask},") + appendLine("${nextIndentString}repeatedStruct=${repeatedStruct},") + appendLine("${nextIndentString}repeatedAny=${repeatedAny},") + appendLine("${nextIndentString}repeatedValue=${repeatedValue},") + appendLine("${nextIndentString}repeatedListValue=${repeatedListValue},") + appendLine("${nextIndentString}fieldname1=${fieldname1},") + appendLine("${nextIndentString}fieldName2=${fieldName2},") + appendLine("${nextIndentString}FieldName3=${FieldName3},") + appendLine("${nextIndentString}field_Name4_=${field_Name4_},") + appendLine("${nextIndentString}field0name5=${field0name5},") + appendLine("${nextIndentString}field_0Name6=${field_0Name6},") + appendLine("${nextIndentString}fieldName7=${fieldName7},") + appendLine("${nextIndentString}FieldName8=${FieldName8},") + appendLine("${nextIndentString}field_Name9=${field_Name9},") + appendLine("${nextIndentString}Field_Name10=${Field_Name10},") + appendLine("${nextIndentString}FIELD_NAME11=${FIELD_NAME11},") + appendLine("${nextIndentString}FIELDName12=${FIELDName12},") + appendLine("${nextIndentString}_FieldName13=${_FieldName13},") + appendLine("${nextIndentString}__FieldName14=${__FieldName14},") + appendLine("${nextIndentString}field_Name15=${field_Name15},") + appendLine("${nextIndentString}field__Name16=${field__Name16},") + appendLine("${nextIndentString}fieldName17__=${fieldName17__},") + appendLine("${nextIndentString}FieldName18__=${FieldName18__},") + appendLine("${nextIndentString}oneofField=${oneofField},") + append("${indentString})") + } + } + class NestedMessageInternal: com.google.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage, kotlinx.rpc.protobuf.internal.InternalMessage(fieldsWithPresence = 1) { private object PresenceIndices { const val corecursive: Int = 0 @@ -185,6 +746,45 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA override var a: Int by MsgFieldDelegate { 0 } override var corecursive: com.google.protobuf_test_messages.proto3.TestAllTypesProto3 by MsgFieldDelegate(PresenceIndices.corecursive) { com.google.protobuf_test_messages.proto3.TestAllTypesProto3Internal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = a.hashCode() + result = 31 * result + if (presenceMask[0]) corecursive.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as NestedMessageInternal + other.checkRequiredFields() + if (a != other.a) return false + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && corecursive != other.corecursive) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage(") + appendLine("${nextIndentString}a=${a},") + if (presenceMask[0]) { + appendLine("${nextIndentString}corecursive=${corecursive.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}corecursive=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -220,6 +820,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: Int by MsgFieldDelegate { 0 } var value: Int by MsgFieldDelegate { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32Int32EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -231,6 +865,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: Long by MsgFieldDelegate { 0L } var value: Long by MsgFieldDelegate { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt64Int64EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -242,6 +910,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: UInt by MsgFieldDelegate { 0u } var value: UInt by MsgFieldDelegate { 0u } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapUint32Uint32EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -253,6 +955,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: ULong by MsgFieldDelegate { 0uL } var value: ULong by MsgFieldDelegate { 0uL } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapUint64Uint64EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -264,6 +1000,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: Int by MsgFieldDelegate { 0 } var value: Int by MsgFieldDelegate { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSint32Sint32EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -275,6 +1045,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: Long by MsgFieldDelegate { 0L } var value: Long by MsgFieldDelegate { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSint64Sint64EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -286,6 +1090,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: UInt by MsgFieldDelegate { 0u } var value: UInt by MsgFieldDelegate { 0u } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapFixed32Fixed32EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -297,6 +1135,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: ULong by MsgFieldDelegate { 0uL } var value: ULong by MsgFieldDelegate { 0uL } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapFixed64Fixed64EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -308,6 +1180,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: Int by MsgFieldDelegate { 0 } var value: Int by MsgFieldDelegate { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSfixed32Sfixed32EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -319,6 +1225,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: Long by MsgFieldDelegate { 0L } var value: Long by MsgFieldDelegate { 0L } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapSfixed64Sfixed64EntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -330,6 +1270,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: Int by MsgFieldDelegate { 0 } var value: Float by MsgFieldDelegate { 0.0f } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32FloatEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -341,6 +1315,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: Int by MsgFieldDelegate { 0 } var value: Double by MsgFieldDelegate { 0.0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapInt32DoubleEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -352,6 +1360,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: Boolean by MsgFieldDelegate { false } var value: Boolean by MsgFieldDelegate { false } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapBoolBoolEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -363,6 +1405,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: String by MsgFieldDelegate { "" } var value: String by MsgFieldDelegate { "" } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringStringEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -374,6 +1450,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: String by MsgFieldDelegate { "" } var value: ByteArray by MsgFieldDelegate { byteArrayOf() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.contentHashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringBytesEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (!value.contentEquals(other.value)) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value.contentToString()},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -389,6 +1499,45 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: String by MsgFieldDelegate { "" } var value: com.google.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.proto3.TestAllTypesProto3Internal.NestedMessageInternal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + if (presenceMask[0]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringNestedMessageEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry(") + appendLine("${nextIndentString}key=${key},") + if (presenceMask[0]) { + appendLine("${nextIndentString}value=${value.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -404,6 +1553,45 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: String by MsgFieldDelegate { "" } var value: com.google.protobuf_test_messages.proto3.ForeignMessage by MsgFieldDelegate(PresenceIndices.value) { com.google.protobuf_test_messages.proto3.ForeignMessageInternal() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + if (presenceMask[0]) value.hashCode() else 0 + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringForeignMessageEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry(") + appendLine("${nextIndentString}key=${key},") + if (presenceMask[0]) { + appendLine("${nextIndentString}value=${value.asInternal().asString(indent = indent + 4)},") + } else { + appendLine("${nextIndentString}value=,") + } + + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -415,6 +1603,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: String by MsgFieldDelegate { "" } var value: com.google.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum by MsgFieldDelegate { com.google.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum.FOO } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringNestedEnumEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -426,6 +1648,40 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA var key: String by MsgFieldDelegate { "" } var value: com.google.protobuf_test_messages.proto3.ForeignEnum by MsgFieldDelegate { com.google.protobuf_test_messages.proto3.ForeignEnum.FOREIGN_FOO } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + var result = key.hashCode() + result = 31 * result + value.hashCode() + return result + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as MapStringForeignEnumEntryInternal + other.checkRequiredFields() + if (key != other.key) return false + if (value != other.value) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry(") + appendLine("${nextIndentString}key=${key},") + appendLine("${nextIndentString}value=${value},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi companion object } @@ -464,6 +1720,36 @@ class ForeignMessageInternal: com.google.protobuf_test_messages.proto3.ForeignMe override var c: Int by MsgFieldDelegate { 0 } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return c.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as ForeignMessageInternal + other.checkRequiredFields() + if (c != other.c) return false + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.ForeignMessage(") + appendLine("${nextIndentString}c=${c},") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto3.ForeignMessage): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -496,6 +1782,34 @@ class NullHypothesisProto3Internal: com.google.protobuf_test_messages.proto3.Nul @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as NullHypothesisProto3Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.NullHypothesisProto3(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto3.NullHypothesisProto3): kotlinx.rpc.protobuf.input.stream.InputStream { @@ -528,6 +1842,34 @@ class EnumOnlyProto3Internal: com.google.protobuf_test_messages.proto3.EnumOnlyP @kotlinx.rpc.internal.utils.InternalRpcApi override val _size: Int by lazy { computeSize() } + override fun hashCode(): kotlin.Int { + checkRequiredFields() + return this::class.hashCode() + } + + override fun equals(other: kotlin.Any?): kotlin.Boolean { + checkRequiredFields() + if (this === other) return true + if (other == null || this::class != other::class) return false + other as EnumOnlyProto3Internal + other.checkRequiredFields() + return true + } + + override fun toString(): kotlin.String { + return asString() + } + + fun asString(indent: kotlin.Int = 0): kotlin.String { + checkRequiredFields() + val indentString = " ".repeat(indent) + val nextIndentString = " ".repeat(indent + 4) + return buildString { + appendLine("com.google.protobuf_test_messages.proto3.EnumOnlyProto3(") + append("${indentString})") + } + } + @kotlinx.rpc.internal.utils.InternalRpcApi object CODEC: kotlinx.rpc.grpc.codec.MessageCodec { override fun encode(value: com.google.protobuf_test_messages.proto3.EnumOnlyProto3): kotlinx.rpc.protobuf.input.stream.InputStream { From 90633316af60cddf393f8111af5b7bbea279290a Mon Sep 17 00:00:00 2001 From: Alexander Sysoev Date: Tue, 30 Sep 2025 11:41:14 +0200 Subject: [PATCH 3/3] Simplify presence check --- .../protobuf/kotlin/_rpc_internal/Api.kt | 3 +- .../protobuf/kotlin/_rpc_internal/Struct.kt | 3 +- .../protobuf/kotlin/_rpc_internal/Type.kt | 9 +- .../kotlinx/rpc/protobuf/internal/BitSet.kt | 18 + .../ModelToProtobufKotlinCommonGenerator.kt | 5 +- .../conformance/_rpc_internal/Conformance.kt | 3 +- .../_rpc_internal/TestMessagesEdition2023.kt | 163 ++++---- .../TestMessagesProto2Editions.kt | 370 ++++++++++-------- .../TestMessagesProto3Editions.kt | 46 ++- .../_rpc_internal/TestMessagesProto2.kt | 370 ++++++++++-------- .../_rpc_internal/TestMessagesProto3.kt | 46 ++- 11 files changed, 586 insertions(+), 450 deletions(-) diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Api.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Api.kt index b437164df..be631134b 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Api.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Api.kt @@ -39,11 +39,12 @@ public class ApiInternal: com.google.protobuf.kotlin.Api, kotlinx.rpc.protobuf.i if (other == null || this::class != other::class) return false other as ApiInternal other.checkRequiredFields() + if (presenceMask != other.presenceMask) return false if (name != other.name) return false if (methods != other.methods) return false if (options != other.options) return false if (version != other.version) return false - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && sourceContext != other.sourceContext) return false + if (presenceMask[0] && sourceContext != other.sourceContext) return false if (mixins != other.mixins) return false if (syntax != other.syntax) return false return true diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Struct.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Struct.kt index 54b2df8c9..41b0c2809 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Struct.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Struct.kt @@ -65,8 +65,9 @@ public class StructInternal: com.google.protobuf.kotlin.Struct, kotlinx.rpc.prot if (other == null || this::class != other::class) return false other as FieldsEntryInternal other.checkRequiredFields() + if (presenceMask != other.presenceMask) return false if (key != other.key) return false - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && value != other.value) return false + if (presenceMask[0] && value != other.value) return false return true } diff --git a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Type.kt b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Type.kt index e8e5c5a7c..acd3f69e6 100644 --- a/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Type.kt +++ b/protobuf/protobuf-core/src/commonMain/generated-code/kotlin-multiplatform/com/google/protobuf/kotlin/_rpc_internal/Type.kt @@ -39,11 +39,12 @@ public class TypeInternal: com.google.protobuf.kotlin.Type, kotlinx.rpc.protobuf if (other == null || this::class != other::class) return false other as TypeInternal other.checkRequiredFields() + if (presenceMask != other.presenceMask) return false if (name != other.name) return false if (fields != other.fields) return false if (oneofs != other.oneofs) return false if (options != other.options) return false - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && sourceContext != other.sourceContext) return false + if (presenceMask[0] && sourceContext != other.sourceContext) return false if (syntax != other.syntax) return false if (edition != other.edition) return false return true @@ -236,10 +237,11 @@ public class EnumInternal: com.google.protobuf.kotlin.Enum, kotlinx.rpc.protobuf if (other == null || this::class != other::class) return false other as EnumInternal other.checkRequiredFields() + if (presenceMask != other.presenceMask) return false if (name != other.name) return false if (enumvalue != other.enumvalue) return false if (options != other.options) return false - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && sourceContext != other.sourceContext) return false + if (presenceMask[0] && sourceContext != other.sourceContext) return false if (syntax != other.syntax) return false if (edition != other.edition) return false return true @@ -395,8 +397,9 @@ public class OptionInternal: com.google.protobuf.kotlin.Option, kotlinx.rpc.prot if (other == null || this::class != other::class) return false other as OptionInternal other.checkRequiredFields() + if (presenceMask != other.presenceMask) return false if (name != other.name) return false - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && value != other.value) return false + if (presenceMask[0] && value != other.value) return false return true } diff --git a/protobuf/protobuf-core/src/commonMain/kotlin/kotlinx/rpc/protobuf/internal/BitSet.kt b/protobuf/protobuf-core/src/commonMain/kotlin/kotlinx/rpc/protobuf/internal/BitSet.kt index e8fe19bb7..116a04648 100644 --- a/protobuf/protobuf-core/src/commonMain/kotlin/kotlinx/rpc/protobuf/internal/BitSet.kt +++ b/protobuf/protobuf-core/src/commonMain/kotlin/kotlinx/rpc/protobuf/internal/BitSet.kt @@ -66,4 +66,22 @@ public class BitSet(public val size: Int) { } return true } + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other == null || this::class != other::class) return false + + other as BitSet + + if (size != other.size) return false + if (!data.contentEquals(other.data)) return false + + return true + } + + override fun hashCode(): Int { + var result = size + result = 31 * result + data.contentHashCode() + return result + } } diff --git a/protoc-gen/protobuf/src/main/kotlin/kotlinx/rpc/protoc/gen/ModelToProtobufKotlinCommonGenerator.kt b/protoc-gen/protobuf/src/main/kotlin/kotlinx/rpc/protoc/gen/ModelToProtobufKotlinCommonGenerator.kt index 238f8b1b6..d11d92a23 100644 --- a/protoc-gen/protobuf/src/main/kotlin/kotlinx/rpc/protoc/gen/ModelToProtobufKotlinCommonGenerator.kt +++ b/protoc-gen/protobuf/src/main/kotlin/kotlinx/rpc/protoc/gen/ModelToProtobufKotlinCommonGenerator.kt @@ -285,11 +285,14 @@ class ModelToProtobufKotlinCommonGenerator( addLine("if (other == null || this::class != other::class) return false") addLine("other as ${declaration.internalClassName()}") addLine("other.checkRequiredFields()") + if (declaration.presenceMaskSize != 0) { + addLine("if (presenceMask != other.presenceMask) return false") + } if (fields.isNotEmpty()) { fields.forEach { field -> if (field.presenceIdx != null) { fieldEqualsCheck( - presenceCheck = "presenceMask[${field.presenceIdx}] != other.presenceMask[${field.presenceIdx}] || presenceMask[${field.presenceIdx}] && ", + presenceCheck = "presenceMask[${field.presenceIdx}] && ", field = field, ) } else { diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf/conformance/_rpc_internal/Conformance.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf/conformance/_rpc_internal/Conformance.kt index adfe5f312..a9c6610a3 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf/conformance/_rpc_internal/Conformance.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf/conformance/_rpc_internal/Conformance.kt @@ -185,10 +185,11 @@ class ConformanceRequestInternal: com.google.protobuf.conformance.ConformanceReq if (other == null || this::class != other::class) return false other as ConformanceRequestInternal other.checkRequiredFields() + if (presenceMask != other.presenceMask) return false if (requestedOutputFormat != other.requestedOutputFormat) return false if (messageType != other.messageType) return false if (testCategory != other.testCategory) return false - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && jspbEncodingOptions != other.jspbEncodingOptions) return false + if (presenceMask[0] && jspbEncodingOptions != other.jspbEncodingOptions) return false if (printUnknownFields != other.printUnknownFields) return false if (payload != other.payload) return false return true diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/edition2023/_rpc_internal/TestMessagesEdition2023.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/edition2023/_rpc_internal/TestMessagesEdition2023.kt index 61bbd3daf..af6ec8da4 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/edition2023/_rpc_internal/TestMessagesEdition2023.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/edition2023/_rpc_internal/TestMessagesEdition2023.kt @@ -26,7 +26,8 @@ class ComplexMessageInternal: com.google.protobuf_test_messages.edition2023.Comp if (other == null || this::class != other::class) return false other as ComplexMessageInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && d != other.d) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && d != other.d) return false return true } @@ -323,28 +324,29 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as TestAllTypesEdition2023Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && optionalInt32 != other.optionalInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && optionalInt64 != other.optionalInt64) return false - if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && optionalUint32 != other.optionalUint32) return false - if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && optionalUint64 != other.optionalUint64) return false - if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && optionalSint32 != other.optionalSint32) return false - if (presenceMask[5] != other.presenceMask[5] || presenceMask[5] && optionalSint64 != other.optionalSint64) return false - if (presenceMask[6] != other.presenceMask[6] || presenceMask[6] && optionalFixed32 != other.optionalFixed32) return false - if (presenceMask[7] != other.presenceMask[7] || presenceMask[7] && optionalFixed64 != other.optionalFixed64) return false - if (presenceMask[8] != other.presenceMask[8] || presenceMask[8] && optionalSfixed32 != other.optionalSfixed32) return false - if (presenceMask[9] != other.presenceMask[9] || presenceMask[9] && optionalSfixed64 != other.optionalSfixed64) return false - if (presenceMask[10] != other.presenceMask[10] || presenceMask[10] && optionalFloat != other.optionalFloat) return false - if (presenceMask[11] != other.presenceMask[11] || presenceMask[11] && optionalDouble != other.optionalDouble) return false - if (presenceMask[12] != other.presenceMask[12] || presenceMask[12] && optionalBool != other.optionalBool) return false - if (presenceMask[13] != other.presenceMask[13] || presenceMask[13] && optionalString != other.optionalString) return false - if (presenceMask[14] != other.presenceMask[14] || presenceMask[14] && ((optionalBytes != null && (other.optionalBytes == null || !optionalBytes!!.contentEquals(other.optionalBytes!!))) || other.optionalBytes != null)) return false - if (presenceMask[15] != other.presenceMask[15] || presenceMask[15] && optionalNestedMessage != other.optionalNestedMessage) return false - if (presenceMask[16] != other.presenceMask[16] || presenceMask[16] && optionalForeignMessage != other.optionalForeignMessage) return false - if (presenceMask[17] != other.presenceMask[17] || presenceMask[17] && optionalNestedEnum != other.optionalNestedEnum) return false - if (presenceMask[18] != other.presenceMask[18] || presenceMask[18] && optionalForeignEnum != other.optionalForeignEnum) return false - if (presenceMask[19] != other.presenceMask[19] || presenceMask[19] && optionalStringPiece != other.optionalStringPiece) return false - if (presenceMask[20] != other.presenceMask[20] || presenceMask[20] && optionalCord != other.optionalCord) return false - if (presenceMask[21] != other.presenceMask[21] || presenceMask[21] && recursiveMessage != other.recursiveMessage) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && optionalInt32 != other.optionalInt32) return false + if (presenceMask[1] && optionalInt64 != other.optionalInt64) return false + if (presenceMask[2] && optionalUint32 != other.optionalUint32) return false + if (presenceMask[3] && optionalUint64 != other.optionalUint64) return false + if (presenceMask[4] && optionalSint32 != other.optionalSint32) return false + if (presenceMask[5] && optionalSint64 != other.optionalSint64) return false + if (presenceMask[6] && optionalFixed32 != other.optionalFixed32) return false + if (presenceMask[7] && optionalFixed64 != other.optionalFixed64) return false + if (presenceMask[8] && optionalSfixed32 != other.optionalSfixed32) return false + if (presenceMask[9] && optionalSfixed64 != other.optionalSfixed64) return false + if (presenceMask[10] && optionalFloat != other.optionalFloat) return false + if (presenceMask[11] && optionalDouble != other.optionalDouble) return false + if (presenceMask[12] && optionalBool != other.optionalBool) return false + if (presenceMask[13] && optionalString != other.optionalString) return false + if (presenceMask[14] && ((optionalBytes != null && (other.optionalBytes == null || !optionalBytes!!.contentEquals(other.optionalBytes!!))) || other.optionalBytes != null)) return false + if (presenceMask[15] && optionalNestedMessage != other.optionalNestedMessage) return false + if (presenceMask[16] && optionalForeignMessage != other.optionalForeignMessage) return false + if (presenceMask[17] && optionalNestedEnum != other.optionalNestedEnum) return false + if (presenceMask[18] && optionalForeignEnum != other.optionalForeignEnum) return false + if (presenceMask[19] && optionalStringPiece != other.optionalStringPiece) return false + if (presenceMask[20] && optionalCord != other.optionalCord) return false + if (presenceMask[21] && recursiveMessage != other.recursiveMessage) return false if (repeatedInt32 != other.repeatedInt32) return false if (repeatedInt64 != other.repeatedInt64) return false if (repeatedUint32 != other.repeatedUint32) return false @@ -413,8 +415,8 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (mapStringForeignMessage != other.mapStringForeignMessage) return false if (mapStringNestedEnum != other.mapStringNestedEnum) return false if (mapStringForeignEnum != other.mapStringForeignEnum) return false - if (presenceMask[22] != other.presenceMask[22] || presenceMask[22] && groupliketype != other.groupliketype) return false - if (presenceMask[23] != other.presenceMask[23] || presenceMask[23] && delimitedField != other.delimitedField) return false + if (presenceMask[22] && groupliketype != other.groupliketype) return false + if (presenceMask[23] && delimitedField != other.delimitedField) return false if (oneofField != other.oneofField) return false return true } @@ -671,8 +673,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as NestedMessageInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && a != other.a) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && corecursive != other.corecursive) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && a != other.a) return false + if (presenceMask[1] && corecursive != other.corecursive) return false return true } @@ -755,8 +758,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapInt32Int32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -815,8 +819,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapInt64Int64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -875,8 +880,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapUint32Uint32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -935,8 +941,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapUint64Uint64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -995,8 +1002,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapSint32Sint32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1055,8 +1063,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapSint64Sint64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1115,8 +1124,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapFixed32Fixed32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1175,8 +1185,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapFixed64Fixed64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1235,8 +1246,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapSfixed32Sfixed32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1295,8 +1307,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapSfixed64Sfixed64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1355,8 +1368,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapInt32FloatEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1415,8 +1429,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapInt32DoubleEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1475,8 +1490,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapBoolBoolEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1535,8 +1551,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapStringStringEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1595,8 +1612,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapStringBytesEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && !value.contentEquals(other.value)) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && !value.contentEquals(other.value)) return false return true } @@ -1655,8 +1673,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapStringNestedMessageEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1715,8 +1734,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapStringForeignMessageEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1775,8 +1795,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapStringNestedEnumEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1835,8 +1856,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as MapStringForeignEnumEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1895,8 +1917,9 @@ class TestAllTypesEdition2023Internal: com.google.protobuf_test_messages.edition if (other == null || this::class != other::class) return false other as GroupLikeTypeInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] && groupUint32 != other.groupUint32) return false return true } @@ -1979,7 +2002,8 @@ class ForeignMessageEdition2023Internal: com.google.protobuf_test_messages.editi if (other == null || this::class != other::class) return false other as ForeignMessageEdition2023Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && c != other.c) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && c != other.c) return false return true } @@ -2052,7 +2076,8 @@ class GroupLikeTypeInternal: com.google.protobuf_test_messages.edition2023.Group if (other == null || this::class != other::class) return false other as GroupLikeTypeInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && c != other.c) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && c != other.c) return false return true } diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto2/_rpc_internal/TestMessagesProto2Editions.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto2/_rpc_internal/TestMessagesProto2Editions.kt index f1b060461..4460db5aa 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto2/_rpc_internal/TestMessagesProto2Editions.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto2/_rpc_internal/TestMessagesProto2Editions.kt @@ -360,28 +360,29 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as TestAllTypesProto2Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && optionalInt32 != other.optionalInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && optionalInt64 != other.optionalInt64) return false - if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && optionalUint32 != other.optionalUint32) return false - if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && optionalUint64 != other.optionalUint64) return false - if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && optionalSint32 != other.optionalSint32) return false - if (presenceMask[5] != other.presenceMask[5] || presenceMask[5] && optionalSint64 != other.optionalSint64) return false - if (presenceMask[6] != other.presenceMask[6] || presenceMask[6] && optionalFixed32 != other.optionalFixed32) return false - if (presenceMask[7] != other.presenceMask[7] || presenceMask[7] && optionalFixed64 != other.optionalFixed64) return false - if (presenceMask[8] != other.presenceMask[8] || presenceMask[8] && optionalSfixed32 != other.optionalSfixed32) return false - if (presenceMask[9] != other.presenceMask[9] || presenceMask[9] && optionalSfixed64 != other.optionalSfixed64) return false - if (presenceMask[10] != other.presenceMask[10] || presenceMask[10] && optionalFloat != other.optionalFloat) return false - if (presenceMask[11] != other.presenceMask[11] || presenceMask[11] && optionalDouble != other.optionalDouble) return false - if (presenceMask[12] != other.presenceMask[12] || presenceMask[12] && optionalBool != other.optionalBool) return false - if (presenceMask[13] != other.presenceMask[13] || presenceMask[13] && optionalString != other.optionalString) return false - if (presenceMask[14] != other.presenceMask[14] || presenceMask[14] && ((optionalBytes != null && (other.optionalBytes == null || !optionalBytes!!.contentEquals(other.optionalBytes!!))) || other.optionalBytes != null)) return false - if (presenceMask[15] != other.presenceMask[15] || presenceMask[15] && optionalNestedMessage != other.optionalNestedMessage) return false - if (presenceMask[16] != other.presenceMask[16] || presenceMask[16] && optionalForeignMessage != other.optionalForeignMessage) return false - if (presenceMask[17] != other.presenceMask[17] || presenceMask[17] && optionalNestedEnum != other.optionalNestedEnum) return false - if (presenceMask[18] != other.presenceMask[18] || presenceMask[18] && optionalForeignEnum != other.optionalForeignEnum) return false - if (presenceMask[19] != other.presenceMask[19] || presenceMask[19] && optionalStringPiece != other.optionalStringPiece) return false - if (presenceMask[20] != other.presenceMask[20] || presenceMask[20] && optionalCord != other.optionalCord) return false - if (presenceMask[21] != other.presenceMask[21] || presenceMask[21] && recursiveMessage != other.recursiveMessage) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && optionalInt32 != other.optionalInt32) return false + if (presenceMask[1] && optionalInt64 != other.optionalInt64) return false + if (presenceMask[2] && optionalUint32 != other.optionalUint32) return false + if (presenceMask[3] && optionalUint64 != other.optionalUint64) return false + if (presenceMask[4] && optionalSint32 != other.optionalSint32) return false + if (presenceMask[5] && optionalSint64 != other.optionalSint64) return false + if (presenceMask[6] && optionalFixed32 != other.optionalFixed32) return false + if (presenceMask[7] && optionalFixed64 != other.optionalFixed64) return false + if (presenceMask[8] && optionalSfixed32 != other.optionalSfixed32) return false + if (presenceMask[9] && optionalSfixed64 != other.optionalSfixed64) return false + if (presenceMask[10] && optionalFloat != other.optionalFloat) return false + if (presenceMask[11] && optionalDouble != other.optionalDouble) return false + if (presenceMask[12] && optionalBool != other.optionalBool) return false + if (presenceMask[13] && optionalString != other.optionalString) return false + if (presenceMask[14] && ((optionalBytes != null && (other.optionalBytes == null || !optionalBytes!!.contentEquals(other.optionalBytes!!))) || other.optionalBytes != null)) return false + if (presenceMask[15] && optionalNestedMessage != other.optionalNestedMessage) return false + if (presenceMask[16] && optionalForeignMessage != other.optionalForeignMessage) return false + if (presenceMask[17] && optionalNestedEnum != other.optionalNestedEnum) return false + if (presenceMask[18] && optionalForeignEnum != other.optionalForeignEnum) return false + if (presenceMask[19] && optionalStringPiece != other.optionalStringPiece) return false + if (presenceMask[20] && optionalCord != other.optionalCord) return false + if (presenceMask[21] && recursiveMessage != other.recursiveMessage) return false if (repeatedInt32 != other.repeatedInt32) return false if (repeatedInt64 != other.repeatedInt64) return false if (repeatedUint32 != other.repeatedUint32) return false @@ -452,42 +453,42 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (mapStringForeignMessage != other.mapStringForeignMessage) return false if (mapStringNestedEnum != other.mapStringNestedEnum) return false if (mapStringForeignEnum != other.mapStringForeignEnum) return false - if (presenceMask[22] != other.presenceMask[22] || presenceMask[22] && data != other.data) return false - if (presenceMask[23] != other.presenceMask[23] || presenceMask[23] && multiwordgroupfield != other.multiwordgroupfield) return false - if (presenceMask[24] != other.presenceMask[24] || presenceMask[24] && defaultInt32 != other.defaultInt32) return false - if (presenceMask[25] != other.presenceMask[25] || presenceMask[25] && defaultInt64 != other.defaultInt64) return false - if (presenceMask[26] != other.presenceMask[26] || presenceMask[26] && defaultUint32 != other.defaultUint32) return false - if (presenceMask[27] != other.presenceMask[27] || presenceMask[27] && defaultUint64 != other.defaultUint64) return false - if (presenceMask[28] != other.presenceMask[28] || presenceMask[28] && defaultSint32 != other.defaultSint32) return false - if (presenceMask[29] != other.presenceMask[29] || presenceMask[29] && defaultSint64 != other.defaultSint64) return false - if (presenceMask[30] != other.presenceMask[30] || presenceMask[30] && defaultFixed32 != other.defaultFixed32) return false - if (presenceMask[31] != other.presenceMask[31] || presenceMask[31] && defaultFixed64 != other.defaultFixed64) return false - if (presenceMask[32] != other.presenceMask[32] || presenceMask[32] && defaultSfixed32 != other.defaultSfixed32) return false - if (presenceMask[33] != other.presenceMask[33] || presenceMask[33] && defaultSfixed64 != other.defaultSfixed64) return false - if (presenceMask[34] != other.presenceMask[34] || presenceMask[34] && defaultFloat != other.defaultFloat) return false - if (presenceMask[35] != other.presenceMask[35] || presenceMask[35] && defaultDouble != other.defaultDouble) return false - if (presenceMask[36] != other.presenceMask[36] || presenceMask[36] && defaultBool != other.defaultBool) return false - if (presenceMask[37] != other.presenceMask[37] || presenceMask[37] && defaultString != other.defaultString) return false - if (presenceMask[38] != other.presenceMask[38] || presenceMask[38] && !defaultBytes.contentEquals(other.defaultBytes)) return false - if (presenceMask[39] != other.presenceMask[39] || presenceMask[39] && fieldname1 != other.fieldname1) return false - if (presenceMask[40] != other.presenceMask[40] || presenceMask[40] && fieldName2 != other.fieldName2) return false - if (presenceMask[41] != other.presenceMask[41] || presenceMask[41] && FieldName3 != other.FieldName3) return false - if (presenceMask[42] != other.presenceMask[42] || presenceMask[42] && field_Name4_ != other.field_Name4_) return false - if (presenceMask[43] != other.presenceMask[43] || presenceMask[43] && field0name5 != other.field0name5) return false - if (presenceMask[44] != other.presenceMask[44] || presenceMask[44] && field_0Name6 != other.field_0Name6) return false - if (presenceMask[45] != other.presenceMask[45] || presenceMask[45] && fieldName7 != other.fieldName7) return false - if (presenceMask[46] != other.presenceMask[46] || presenceMask[46] && FieldName8 != other.FieldName8) return false - if (presenceMask[47] != other.presenceMask[47] || presenceMask[47] && field_Name9 != other.field_Name9) return false - if (presenceMask[48] != other.presenceMask[48] || presenceMask[48] && Field_Name10 != other.Field_Name10) return false - if (presenceMask[49] != other.presenceMask[49] || presenceMask[49] && FIELD_NAME11 != other.FIELD_NAME11) return false - if (presenceMask[50] != other.presenceMask[50] || presenceMask[50] && FIELDName12 != other.FIELDName12) return false - if (presenceMask[51] != other.presenceMask[51] || presenceMask[51] && _FieldName13 != other._FieldName13) return false - if (presenceMask[52] != other.presenceMask[52] || presenceMask[52] && __FieldName14 != other.__FieldName14) return false - if (presenceMask[53] != other.presenceMask[53] || presenceMask[53] && field_Name15 != other.field_Name15) return false - if (presenceMask[54] != other.presenceMask[54] || presenceMask[54] && field__Name16 != other.field__Name16) return false - if (presenceMask[55] != other.presenceMask[55] || presenceMask[55] && fieldName17__ != other.fieldName17__) return false - if (presenceMask[56] != other.presenceMask[56] || presenceMask[56] && FieldName18__ != other.FieldName18__) return false - if (presenceMask[57] != other.presenceMask[57] || presenceMask[57] && messageSetCorrect != other.messageSetCorrect) return false + if (presenceMask[22] && data != other.data) return false + if (presenceMask[23] && multiwordgroupfield != other.multiwordgroupfield) return false + if (presenceMask[24] && defaultInt32 != other.defaultInt32) return false + if (presenceMask[25] && defaultInt64 != other.defaultInt64) return false + if (presenceMask[26] && defaultUint32 != other.defaultUint32) return false + if (presenceMask[27] && defaultUint64 != other.defaultUint64) return false + if (presenceMask[28] && defaultSint32 != other.defaultSint32) return false + if (presenceMask[29] && defaultSint64 != other.defaultSint64) return false + if (presenceMask[30] && defaultFixed32 != other.defaultFixed32) return false + if (presenceMask[31] && defaultFixed64 != other.defaultFixed64) return false + if (presenceMask[32] && defaultSfixed32 != other.defaultSfixed32) return false + if (presenceMask[33] && defaultSfixed64 != other.defaultSfixed64) return false + if (presenceMask[34] && defaultFloat != other.defaultFloat) return false + if (presenceMask[35] && defaultDouble != other.defaultDouble) return false + if (presenceMask[36] && defaultBool != other.defaultBool) return false + if (presenceMask[37] && defaultString != other.defaultString) return false + if (presenceMask[38] && !defaultBytes.contentEquals(other.defaultBytes)) return false + if (presenceMask[39] && fieldname1 != other.fieldname1) return false + if (presenceMask[40] && fieldName2 != other.fieldName2) return false + if (presenceMask[41] && FieldName3 != other.FieldName3) return false + if (presenceMask[42] && field_Name4_ != other.field_Name4_) return false + if (presenceMask[43] && field0name5 != other.field0name5) return false + if (presenceMask[44] && field_0Name6 != other.field_0Name6) return false + if (presenceMask[45] && fieldName7 != other.fieldName7) return false + if (presenceMask[46] && FieldName8 != other.FieldName8) return false + if (presenceMask[47] && field_Name9 != other.field_Name9) return false + if (presenceMask[48] && Field_Name10 != other.Field_Name10) return false + if (presenceMask[49] && FIELD_NAME11 != other.FIELD_NAME11) return false + if (presenceMask[50] && FIELDName12 != other.FIELDName12) return false + if (presenceMask[51] && _FieldName13 != other._FieldName13) return false + if (presenceMask[52] && __FieldName14 != other.__FieldName14) return false + if (presenceMask[53] && field_Name15 != other.field_Name15) return false + if (presenceMask[54] && field__Name16 != other.field__Name16) return false + if (presenceMask[55] && fieldName17__ != other.fieldName17__) return false + if (presenceMask[56] && FieldName18__ != other.FieldName18__) return false + if (presenceMask[57] && messageSetCorrect != other.messageSetCorrect) return false if (oneofField != other.oneofField) return false return true } @@ -950,8 +951,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as NestedMessageInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && a != other.a) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && corecursive != other.corecursive) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && a != other.a) return false + if (presenceMask[1] && corecursive != other.corecursive) return false return true } @@ -1034,8 +1036,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapInt32Int32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1094,8 +1097,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapInt64Int64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1154,8 +1158,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapUint32Uint32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1214,8 +1219,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapUint64Uint64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1274,8 +1280,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapSint32Sint32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1334,8 +1341,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapSint64Sint64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1394,8 +1402,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapFixed32Fixed32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1454,8 +1463,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapFixed64Fixed64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1514,8 +1524,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapSfixed32Sfixed32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1574,8 +1585,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapSfixed64Sfixed64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1634,8 +1646,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapInt32BoolEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1694,8 +1707,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapInt32FloatEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1754,8 +1768,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapInt32DoubleEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1814,8 +1829,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapInt32NestedMessageEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1874,8 +1890,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapBoolBoolEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1934,8 +1951,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapStringStringEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1994,8 +2012,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapStringBytesEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && !value.contentEquals(other.value)) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && !value.contentEquals(other.value)) return false return true } @@ -2054,8 +2073,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapStringNestedMessageEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -2114,8 +2134,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapStringForeignMessageEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -2174,8 +2195,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapStringNestedEnumEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -2234,8 +2256,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapStringForeignEnumEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -2294,8 +2317,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as DataInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] && groupUint32 != other.groupUint32) return false return true } @@ -2354,8 +2378,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MultiWordGroupFieldInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] && groupUint32 != other.groupUint32) return false return true } @@ -2470,7 +2495,8 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MessageSetCorrectExtension1Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && str != other.str) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && str != other.str) return false return true } @@ -2543,7 +2569,8 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MessageSetCorrectExtension2Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && i != other.i) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && i != other.i) return false return true } @@ -2717,7 +2744,8 @@ class ForeignMessageProto2Internal: com.google.protobuf_test_messages.editions.p if (other == null || this::class != other::class) return false other as ForeignMessageProto2Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && c != other.c) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && c != other.c) return false return true } @@ -2794,8 +2822,9 @@ class GroupFieldInternal: com.google.protobuf_test_messages.editions.proto2.Grou if (other == null || this::class != other::class) return false other as GroupFieldInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] && groupUint32 != other.groupUint32) return false return true } @@ -2889,11 +2918,12 @@ class UnknownToTestAllTypesInternal: com.google.protobuf_test_messages.editions. if (other == null || this::class != other::class) return false other as UnknownToTestAllTypesInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && optionalInt32 != other.optionalInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && optionalString != other.optionalString) return false - if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && nestedMessage != other.nestedMessage) return false - if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && optionalgroup != other.optionalgroup) return false - if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && optionalBool != other.optionalBool) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && optionalInt32 != other.optionalInt32) return false + if (presenceMask[1] && optionalString != other.optionalString) return false + if (presenceMask[2] && nestedMessage != other.nestedMessage) return false + if (presenceMask[3] && optionalgroup != other.optionalgroup) return false + if (presenceMask[4] && optionalBool != other.optionalBool) return false if (repeatedInt32 != other.repeatedInt32) return false return true } @@ -2964,7 +2994,8 @@ class UnknownToTestAllTypesInternal: com.google.protobuf_test_messages.editions. if (other == null || this::class != other::class) return false other as OptionalGroupInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && a != other.a) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && a != other.a) return false return true } @@ -3161,7 +3192,8 @@ class OneStringProto2Internal: com.google.protobuf_test_messages.editions.proto2 if (other == null || this::class != other::class) return false other as OneStringProto2Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && data != other.data) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && data != other.data) return false return true } @@ -3240,8 +3272,9 @@ class ProtoWithKeywordsInternal: com.google.protobuf_test_messages.editions.prot if (other == null || this::class != other::class) return false other as ProtoWithKeywordsInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && inline != other.inline) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && concept != other.concept) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && inline != other.inline) return false + if (presenceMask[1] && concept != other.concept) return false if (requires != other.requires) return false return true } @@ -3441,45 +3474,46 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.edit if (other == null || this::class != other::class) return false other as TestAllRequiredTypesProto2Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && requiredInt32 != other.requiredInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && requiredInt64 != other.requiredInt64) return false - if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && requiredUint32 != other.requiredUint32) return false - if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && requiredUint64 != other.requiredUint64) return false - if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && requiredSint32 != other.requiredSint32) return false - if (presenceMask[5] != other.presenceMask[5] || presenceMask[5] && requiredSint64 != other.requiredSint64) return false - if (presenceMask[6] != other.presenceMask[6] || presenceMask[6] && requiredFixed32 != other.requiredFixed32) return false - if (presenceMask[7] != other.presenceMask[7] || presenceMask[7] && requiredFixed64 != other.requiredFixed64) return false - if (presenceMask[8] != other.presenceMask[8] || presenceMask[8] && requiredSfixed32 != other.requiredSfixed32) return false - if (presenceMask[9] != other.presenceMask[9] || presenceMask[9] && requiredSfixed64 != other.requiredSfixed64) return false - if (presenceMask[10] != other.presenceMask[10] || presenceMask[10] && requiredFloat != other.requiredFloat) return false - if (presenceMask[11] != other.presenceMask[11] || presenceMask[11] && requiredDouble != other.requiredDouble) return false - if (presenceMask[12] != other.presenceMask[12] || presenceMask[12] && requiredBool != other.requiredBool) return false - if (presenceMask[13] != other.presenceMask[13] || presenceMask[13] && requiredString != other.requiredString) return false - if (presenceMask[14] != other.presenceMask[14] || presenceMask[14] && !requiredBytes.contentEquals(other.requiredBytes)) return false - if (presenceMask[15] != other.presenceMask[15] || presenceMask[15] && requiredNestedMessage != other.requiredNestedMessage) return false - if (presenceMask[16] != other.presenceMask[16] || presenceMask[16] && requiredForeignMessage != other.requiredForeignMessage) return false - if (presenceMask[17] != other.presenceMask[17] || presenceMask[17] && requiredNestedEnum != other.requiredNestedEnum) return false - if (presenceMask[18] != other.presenceMask[18] || presenceMask[18] && requiredForeignEnum != other.requiredForeignEnum) return false - if (presenceMask[19] != other.presenceMask[19] || presenceMask[19] && requiredStringPiece != other.requiredStringPiece) return false - if (presenceMask[20] != other.presenceMask[20] || presenceMask[20] && requiredCord != other.requiredCord) return false - if (presenceMask[21] != other.presenceMask[21] || presenceMask[21] && recursiveMessage != other.recursiveMessage) return false - if (presenceMask[22] != other.presenceMask[22] || presenceMask[22] && optionalRecursiveMessage != other.optionalRecursiveMessage) return false - if (presenceMask[23] != other.presenceMask[23] || presenceMask[23] && data != other.data) return false - if (presenceMask[24] != other.presenceMask[24] || presenceMask[24] && defaultInt32 != other.defaultInt32) return false - if (presenceMask[25] != other.presenceMask[25] || presenceMask[25] && defaultInt64 != other.defaultInt64) return false - if (presenceMask[26] != other.presenceMask[26] || presenceMask[26] && defaultUint32 != other.defaultUint32) return false - if (presenceMask[27] != other.presenceMask[27] || presenceMask[27] && defaultUint64 != other.defaultUint64) return false - if (presenceMask[28] != other.presenceMask[28] || presenceMask[28] && defaultSint32 != other.defaultSint32) return false - if (presenceMask[29] != other.presenceMask[29] || presenceMask[29] && defaultSint64 != other.defaultSint64) return false - if (presenceMask[30] != other.presenceMask[30] || presenceMask[30] && defaultFixed32 != other.defaultFixed32) return false - if (presenceMask[31] != other.presenceMask[31] || presenceMask[31] && defaultFixed64 != other.defaultFixed64) return false - if (presenceMask[32] != other.presenceMask[32] || presenceMask[32] && defaultSfixed32 != other.defaultSfixed32) return false - if (presenceMask[33] != other.presenceMask[33] || presenceMask[33] && defaultSfixed64 != other.defaultSfixed64) return false - if (presenceMask[34] != other.presenceMask[34] || presenceMask[34] && defaultFloat != other.defaultFloat) return false - if (presenceMask[35] != other.presenceMask[35] || presenceMask[35] && defaultDouble != other.defaultDouble) return false - if (presenceMask[36] != other.presenceMask[36] || presenceMask[36] && defaultBool != other.defaultBool) return false - if (presenceMask[37] != other.presenceMask[37] || presenceMask[37] && defaultString != other.defaultString) return false - if (presenceMask[38] != other.presenceMask[38] || presenceMask[38] && !defaultBytes.contentEquals(other.defaultBytes)) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && requiredInt32 != other.requiredInt32) return false + if (presenceMask[1] && requiredInt64 != other.requiredInt64) return false + if (presenceMask[2] && requiredUint32 != other.requiredUint32) return false + if (presenceMask[3] && requiredUint64 != other.requiredUint64) return false + if (presenceMask[4] && requiredSint32 != other.requiredSint32) return false + if (presenceMask[5] && requiredSint64 != other.requiredSint64) return false + if (presenceMask[6] && requiredFixed32 != other.requiredFixed32) return false + if (presenceMask[7] && requiredFixed64 != other.requiredFixed64) return false + if (presenceMask[8] && requiredSfixed32 != other.requiredSfixed32) return false + if (presenceMask[9] && requiredSfixed64 != other.requiredSfixed64) return false + if (presenceMask[10] && requiredFloat != other.requiredFloat) return false + if (presenceMask[11] && requiredDouble != other.requiredDouble) return false + if (presenceMask[12] && requiredBool != other.requiredBool) return false + if (presenceMask[13] && requiredString != other.requiredString) return false + if (presenceMask[14] && !requiredBytes.contentEquals(other.requiredBytes)) return false + if (presenceMask[15] && requiredNestedMessage != other.requiredNestedMessage) return false + if (presenceMask[16] && requiredForeignMessage != other.requiredForeignMessage) return false + if (presenceMask[17] && requiredNestedEnum != other.requiredNestedEnum) return false + if (presenceMask[18] && requiredForeignEnum != other.requiredForeignEnum) return false + if (presenceMask[19] && requiredStringPiece != other.requiredStringPiece) return false + if (presenceMask[20] && requiredCord != other.requiredCord) return false + if (presenceMask[21] && recursiveMessage != other.recursiveMessage) return false + if (presenceMask[22] && optionalRecursiveMessage != other.optionalRecursiveMessage) return false + if (presenceMask[23] && data != other.data) return false + if (presenceMask[24] && defaultInt32 != other.defaultInt32) return false + if (presenceMask[25] && defaultInt64 != other.defaultInt64) return false + if (presenceMask[26] && defaultUint32 != other.defaultUint32) return false + if (presenceMask[27] && defaultUint64 != other.defaultUint64) return false + if (presenceMask[28] && defaultSint32 != other.defaultSint32) return false + if (presenceMask[29] && defaultSint64 != other.defaultSint64) return false + if (presenceMask[30] && defaultFixed32 != other.defaultFixed32) return false + if (presenceMask[31] && defaultFixed64 != other.defaultFixed64) return false + if (presenceMask[32] && defaultSfixed32 != other.defaultSfixed32) return false + if (presenceMask[33] && defaultSfixed64 != other.defaultSfixed64) return false + if (presenceMask[34] && defaultFloat != other.defaultFloat) return false + if (presenceMask[35] && defaultDouble != other.defaultDouble) return false + if (presenceMask[36] && defaultBool != other.defaultBool) return false + if (presenceMask[37] && defaultString != other.defaultString) return false + if (presenceMask[38] && !defaultBytes.contentEquals(other.defaultBytes)) return false return true } @@ -3759,9 +3793,10 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.edit if (other == null || this::class != other::class) return false other as NestedMessageInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && a != other.a) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && corecursive != other.corecursive) return false - if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && optionalCorecursive != other.optionalCorecursive) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && a != other.a) return false + if (presenceMask[1] && corecursive != other.corecursive) return false + if (presenceMask[2] && optionalCorecursive != other.optionalCorecursive) return false return true } @@ -3850,8 +3885,9 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.edit if (other == null || this::class != other::class) return false other as DataInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] && groupUint32 != other.groupUint32) return false return true } @@ -3966,7 +4002,8 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.edit if (other == null || this::class != other::class) return false other as MessageSetCorrectExtension1Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && str != other.str) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && str != other.str) return false return true } @@ -4039,7 +4076,8 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.edit if (other == null || this::class != other::class) return false other as MessageSetCorrectExtension2Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && i != other.i) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && i != other.i) return false return true } diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto3/_rpc_internal/TestMessagesProto3Editions.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto3/_rpc_internal/TestMessagesProto3Editions.kt index a215009b1..4312a467d 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto3/_rpc_internal/TestMessagesProto3Editions.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/editions/proto3/_rpc_internal/TestMessagesProto3Editions.kt @@ -344,6 +344,7 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as TestAllTypesProto3Internal other.checkRequiredFields() + if (presenceMask != other.presenceMask) return false if (optionalInt32 != other.optionalInt32) return false if (optionalInt64 != other.optionalInt64) return false if (optionalUint32 != other.optionalUint32) return false @@ -359,14 +360,14 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro if (optionalBool != other.optionalBool) return false if (optionalString != other.optionalString) return false if (!optionalBytes.contentEquals(other.optionalBytes)) return false - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && optionalNestedMessage != other.optionalNestedMessage) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && optionalForeignMessage != other.optionalForeignMessage) return false + if (presenceMask[0] && optionalNestedMessage != other.optionalNestedMessage) return false + if (presenceMask[1] && optionalForeignMessage != other.optionalForeignMessage) return false if (optionalNestedEnum != other.optionalNestedEnum) return false if (optionalForeignEnum != other.optionalForeignEnum) return false if (optionalAliasedEnum != other.optionalAliasedEnum) return false if (optionalStringPiece != other.optionalStringPiece) return false if (optionalCord != other.optionalCord) return false - if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && recursiveMessage != other.recursiveMessage) return false + if (presenceMask[2] && recursiveMessage != other.recursiveMessage) return false if (repeatedInt32 != other.repeatedInt32) return false if (repeatedInt64 != other.repeatedInt64) return false if (repeatedUint32 != other.repeatedUint32) return false @@ -435,15 +436,15 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro if (mapStringForeignMessage != other.mapStringForeignMessage) return false if (mapStringNestedEnum != other.mapStringNestedEnum) return false if (mapStringForeignEnum != other.mapStringForeignEnum) return false - if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && optionalBoolWrapper != other.optionalBoolWrapper) return false - if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && optionalInt32Wrapper != other.optionalInt32Wrapper) return false - if (presenceMask[5] != other.presenceMask[5] || presenceMask[5] && optionalInt64Wrapper != other.optionalInt64Wrapper) return false - if (presenceMask[6] != other.presenceMask[6] || presenceMask[6] && optionalUint32Wrapper != other.optionalUint32Wrapper) return false - if (presenceMask[7] != other.presenceMask[7] || presenceMask[7] && optionalUint64Wrapper != other.optionalUint64Wrapper) return false - if (presenceMask[8] != other.presenceMask[8] || presenceMask[8] && optionalFloatWrapper != other.optionalFloatWrapper) return false - if (presenceMask[9] != other.presenceMask[9] || presenceMask[9] && optionalDoubleWrapper != other.optionalDoubleWrapper) return false - if (presenceMask[10] != other.presenceMask[10] || presenceMask[10] && optionalStringWrapper != other.optionalStringWrapper) return false - if (presenceMask[11] != other.presenceMask[11] || presenceMask[11] && optionalBytesWrapper != other.optionalBytesWrapper) return false + if (presenceMask[3] && optionalBoolWrapper != other.optionalBoolWrapper) return false + if (presenceMask[4] && optionalInt32Wrapper != other.optionalInt32Wrapper) return false + if (presenceMask[5] && optionalInt64Wrapper != other.optionalInt64Wrapper) return false + if (presenceMask[6] && optionalUint32Wrapper != other.optionalUint32Wrapper) return false + if (presenceMask[7] && optionalUint64Wrapper != other.optionalUint64Wrapper) return false + if (presenceMask[8] && optionalFloatWrapper != other.optionalFloatWrapper) return false + if (presenceMask[9] && optionalDoubleWrapper != other.optionalDoubleWrapper) return false + if (presenceMask[10] && optionalStringWrapper != other.optionalStringWrapper) return false + if (presenceMask[11] && optionalBytesWrapper != other.optionalBytesWrapper) return false if (repeatedBoolWrapper != other.repeatedBoolWrapper) return false if (repeatedInt32Wrapper != other.repeatedInt32Wrapper) return false if (repeatedInt64Wrapper != other.repeatedInt64Wrapper) return false @@ -453,12 +454,12 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro if (repeatedDoubleWrapper != other.repeatedDoubleWrapper) return false if (repeatedStringWrapper != other.repeatedStringWrapper) return false if (repeatedBytesWrapper != other.repeatedBytesWrapper) return false - if (presenceMask[12] != other.presenceMask[12] || presenceMask[12] && optionalDuration != other.optionalDuration) return false - if (presenceMask[13] != other.presenceMask[13] || presenceMask[13] && optionalTimestamp != other.optionalTimestamp) return false - if (presenceMask[14] != other.presenceMask[14] || presenceMask[14] && optionalFieldMask != other.optionalFieldMask) return false - if (presenceMask[15] != other.presenceMask[15] || presenceMask[15] && optionalStruct != other.optionalStruct) return false - if (presenceMask[16] != other.presenceMask[16] || presenceMask[16] && optionalAny != other.optionalAny) return false - if (presenceMask[17] != other.presenceMask[17] || presenceMask[17] && optionalValue != other.optionalValue) return false + if (presenceMask[12] && optionalDuration != other.optionalDuration) return false + if (presenceMask[13] && optionalTimestamp != other.optionalTimestamp) return false + if (presenceMask[14] && optionalFieldMask != other.optionalFieldMask) return false + if (presenceMask[15] && optionalStruct != other.optionalStruct) return false + if (presenceMask[16] && optionalAny != other.optionalAny) return false + if (presenceMask[17] && optionalValue != other.optionalValue) return false if (optionalNullValue != other.optionalNullValue) return false if (repeatedDuration != other.repeatedDuration) return false if (repeatedTimestamp != other.repeatedTimestamp) return false @@ -759,8 +760,9 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as NestedMessageInternal other.checkRequiredFields() + if (presenceMask != other.presenceMask) return false if (a != other.a) return false - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && corecursive != other.corecursive) return false + if (presenceMask[0] && corecursive != other.corecursive) return false return true } @@ -1512,8 +1514,9 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapStringNestedMessageEntryInternal other.checkRequiredFields() + if (presenceMask != other.presenceMask) return false if (key != other.key) return false - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && value != other.value) return false + if (presenceMask[0] && value != other.value) return false return true } @@ -1566,8 +1569,9 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.editions.pro if (other == null || this::class != other::class) return false other as MapStringForeignMessageEntryInternal other.checkRequiredFields() + if (presenceMask != other.presenceMask) return false if (key != other.key) return false - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && value != other.value) return false + if (presenceMask[0] && value != other.value) return false return true } diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto2/_rpc_internal/TestMessagesProto2.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto2/_rpc_internal/TestMessagesProto2.kt index d5ec8443f..f0da3f5e0 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto2/_rpc_internal/TestMessagesProto2.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto2/_rpc_internal/TestMessagesProto2.kt @@ -360,28 +360,29 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as TestAllTypesProto2Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && optionalInt32 != other.optionalInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && optionalInt64 != other.optionalInt64) return false - if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && optionalUint32 != other.optionalUint32) return false - if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && optionalUint64 != other.optionalUint64) return false - if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && optionalSint32 != other.optionalSint32) return false - if (presenceMask[5] != other.presenceMask[5] || presenceMask[5] && optionalSint64 != other.optionalSint64) return false - if (presenceMask[6] != other.presenceMask[6] || presenceMask[6] && optionalFixed32 != other.optionalFixed32) return false - if (presenceMask[7] != other.presenceMask[7] || presenceMask[7] && optionalFixed64 != other.optionalFixed64) return false - if (presenceMask[8] != other.presenceMask[8] || presenceMask[8] && optionalSfixed32 != other.optionalSfixed32) return false - if (presenceMask[9] != other.presenceMask[9] || presenceMask[9] && optionalSfixed64 != other.optionalSfixed64) return false - if (presenceMask[10] != other.presenceMask[10] || presenceMask[10] && optionalFloat != other.optionalFloat) return false - if (presenceMask[11] != other.presenceMask[11] || presenceMask[11] && optionalDouble != other.optionalDouble) return false - if (presenceMask[12] != other.presenceMask[12] || presenceMask[12] && optionalBool != other.optionalBool) return false - if (presenceMask[13] != other.presenceMask[13] || presenceMask[13] && optionalString != other.optionalString) return false - if (presenceMask[14] != other.presenceMask[14] || presenceMask[14] && ((optionalBytes != null && (other.optionalBytes == null || !optionalBytes!!.contentEquals(other.optionalBytes!!))) || other.optionalBytes != null)) return false - if (presenceMask[15] != other.presenceMask[15] || presenceMask[15] && optionalNestedMessage != other.optionalNestedMessage) return false - if (presenceMask[16] != other.presenceMask[16] || presenceMask[16] && optionalForeignMessage != other.optionalForeignMessage) return false - if (presenceMask[17] != other.presenceMask[17] || presenceMask[17] && optionalNestedEnum != other.optionalNestedEnum) return false - if (presenceMask[18] != other.presenceMask[18] || presenceMask[18] && optionalForeignEnum != other.optionalForeignEnum) return false - if (presenceMask[19] != other.presenceMask[19] || presenceMask[19] && optionalStringPiece != other.optionalStringPiece) return false - if (presenceMask[20] != other.presenceMask[20] || presenceMask[20] && optionalCord != other.optionalCord) return false - if (presenceMask[21] != other.presenceMask[21] || presenceMask[21] && recursiveMessage != other.recursiveMessage) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && optionalInt32 != other.optionalInt32) return false + if (presenceMask[1] && optionalInt64 != other.optionalInt64) return false + if (presenceMask[2] && optionalUint32 != other.optionalUint32) return false + if (presenceMask[3] && optionalUint64 != other.optionalUint64) return false + if (presenceMask[4] && optionalSint32 != other.optionalSint32) return false + if (presenceMask[5] && optionalSint64 != other.optionalSint64) return false + if (presenceMask[6] && optionalFixed32 != other.optionalFixed32) return false + if (presenceMask[7] && optionalFixed64 != other.optionalFixed64) return false + if (presenceMask[8] && optionalSfixed32 != other.optionalSfixed32) return false + if (presenceMask[9] && optionalSfixed64 != other.optionalSfixed64) return false + if (presenceMask[10] && optionalFloat != other.optionalFloat) return false + if (presenceMask[11] && optionalDouble != other.optionalDouble) return false + if (presenceMask[12] && optionalBool != other.optionalBool) return false + if (presenceMask[13] && optionalString != other.optionalString) return false + if (presenceMask[14] && ((optionalBytes != null && (other.optionalBytes == null || !optionalBytes!!.contentEquals(other.optionalBytes!!))) || other.optionalBytes != null)) return false + if (presenceMask[15] && optionalNestedMessage != other.optionalNestedMessage) return false + if (presenceMask[16] && optionalForeignMessage != other.optionalForeignMessage) return false + if (presenceMask[17] && optionalNestedEnum != other.optionalNestedEnum) return false + if (presenceMask[18] && optionalForeignEnum != other.optionalForeignEnum) return false + if (presenceMask[19] && optionalStringPiece != other.optionalStringPiece) return false + if (presenceMask[20] && optionalCord != other.optionalCord) return false + if (presenceMask[21] && recursiveMessage != other.recursiveMessage) return false if (repeatedInt32 != other.repeatedInt32) return false if (repeatedInt64 != other.repeatedInt64) return false if (repeatedUint32 != other.repeatedUint32) return false @@ -452,42 +453,42 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (mapStringForeignMessage != other.mapStringForeignMessage) return false if (mapStringNestedEnum != other.mapStringNestedEnum) return false if (mapStringForeignEnum != other.mapStringForeignEnum) return false - if (presenceMask[22] != other.presenceMask[22] || presenceMask[22] && data != other.data) return false - if (presenceMask[23] != other.presenceMask[23] || presenceMask[23] && multiwordgroupfield != other.multiwordgroupfield) return false - if (presenceMask[24] != other.presenceMask[24] || presenceMask[24] && defaultInt32 != other.defaultInt32) return false - if (presenceMask[25] != other.presenceMask[25] || presenceMask[25] && defaultInt64 != other.defaultInt64) return false - if (presenceMask[26] != other.presenceMask[26] || presenceMask[26] && defaultUint32 != other.defaultUint32) return false - if (presenceMask[27] != other.presenceMask[27] || presenceMask[27] && defaultUint64 != other.defaultUint64) return false - if (presenceMask[28] != other.presenceMask[28] || presenceMask[28] && defaultSint32 != other.defaultSint32) return false - if (presenceMask[29] != other.presenceMask[29] || presenceMask[29] && defaultSint64 != other.defaultSint64) return false - if (presenceMask[30] != other.presenceMask[30] || presenceMask[30] && defaultFixed32 != other.defaultFixed32) return false - if (presenceMask[31] != other.presenceMask[31] || presenceMask[31] && defaultFixed64 != other.defaultFixed64) return false - if (presenceMask[32] != other.presenceMask[32] || presenceMask[32] && defaultSfixed32 != other.defaultSfixed32) return false - if (presenceMask[33] != other.presenceMask[33] || presenceMask[33] && defaultSfixed64 != other.defaultSfixed64) return false - if (presenceMask[34] != other.presenceMask[34] || presenceMask[34] && defaultFloat != other.defaultFloat) return false - if (presenceMask[35] != other.presenceMask[35] || presenceMask[35] && defaultDouble != other.defaultDouble) return false - if (presenceMask[36] != other.presenceMask[36] || presenceMask[36] && defaultBool != other.defaultBool) return false - if (presenceMask[37] != other.presenceMask[37] || presenceMask[37] && defaultString != other.defaultString) return false - if (presenceMask[38] != other.presenceMask[38] || presenceMask[38] && !defaultBytes.contentEquals(other.defaultBytes)) return false - if (presenceMask[39] != other.presenceMask[39] || presenceMask[39] && fieldname1 != other.fieldname1) return false - if (presenceMask[40] != other.presenceMask[40] || presenceMask[40] && fieldName2 != other.fieldName2) return false - if (presenceMask[41] != other.presenceMask[41] || presenceMask[41] && FieldName3 != other.FieldName3) return false - if (presenceMask[42] != other.presenceMask[42] || presenceMask[42] && field_Name4_ != other.field_Name4_) return false - if (presenceMask[43] != other.presenceMask[43] || presenceMask[43] && field0name5 != other.field0name5) return false - if (presenceMask[44] != other.presenceMask[44] || presenceMask[44] && field_0Name6 != other.field_0Name6) return false - if (presenceMask[45] != other.presenceMask[45] || presenceMask[45] && fieldName7 != other.fieldName7) return false - if (presenceMask[46] != other.presenceMask[46] || presenceMask[46] && FieldName8 != other.FieldName8) return false - if (presenceMask[47] != other.presenceMask[47] || presenceMask[47] && field_Name9 != other.field_Name9) return false - if (presenceMask[48] != other.presenceMask[48] || presenceMask[48] && Field_Name10 != other.Field_Name10) return false - if (presenceMask[49] != other.presenceMask[49] || presenceMask[49] && FIELD_NAME11 != other.FIELD_NAME11) return false - if (presenceMask[50] != other.presenceMask[50] || presenceMask[50] && FIELDName12 != other.FIELDName12) return false - if (presenceMask[51] != other.presenceMask[51] || presenceMask[51] && _FieldName13 != other._FieldName13) return false - if (presenceMask[52] != other.presenceMask[52] || presenceMask[52] && __FieldName14 != other.__FieldName14) return false - if (presenceMask[53] != other.presenceMask[53] || presenceMask[53] && field_Name15 != other.field_Name15) return false - if (presenceMask[54] != other.presenceMask[54] || presenceMask[54] && field__Name16 != other.field__Name16) return false - if (presenceMask[55] != other.presenceMask[55] || presenceMask[55] && fieldName17__ != other.fieldName17__) return false - if (presenceMask[56] != other.presenceMask[56] || presenceMask[56] && FieldName18__ != other.FieldName18__) return false - if (presenceMask[57] != other.presenceMask[57] || presenceMask[57] && messageSetCorrect != other.messageSetCorrect) return false + if (presenceMask[22] && data != other.data) return false + if (presenceMask[23] && multiwordgroupfield != other.multiwordgroupfield) return false + if (presenceMask[24] && defaultInt32 != other.defaultInt32) return false + if (presenceMask[25] && defaultInt64 != other.defaultInt64) return false + if (presenceMask[26] && defaultUint32 != other.defaultUint32) return false + if (presenceMask[27] && defaultUint64 != other.defaultUint64) return false + if (presenceMask[28] && defaultSint32 != other.defaultSint32) return false + if (presenceMask[29] && defaultSint64 != other.defaultSint64) return false + if (presenceMask[30] && defaultFixed32 != other.defaultFixed32) return false + if (presenceMask[31] && defaultFixed64 != other.defaultFixed64) return false + if (presenceMask[32] && defaultSfixed32 != other.defaultSfixed32) return false + if (presenceMask[33] && defaultSfixed64 != other.defaultSfixed64) return false + if (presenceMask[34] && defaultFloat != other.defaultFloat) return false + if (presenceMask[35] && defaultDouble != other.defaultDouble) return false + if (presenceMask[36] && defaultBool != other.defaultBool) return false + if (presenceMask[37] && defaultString != other.defaultString) return false + if (presenceMask[38] && !defaultBytes.contentEquals(other.defaultBytes)) return false + if (presenceMask[39] && fieldname1 != other.fieldname1) return false + if (presenceMask[40] && fieldName2 != other.fieldName2) return false + if (presenceMask[41] && FieldName3 != other.FieldName3) return false + if (presenceMask[42] && field_Name4_ != other.field_Name4_) return false + if (presenceMask[43] && field0name5 != other.field0name5) return false + if (presenceMask[44] && field_0Name6 != other.field_0Name6) return false + if (presenceMask[45] && fieldName7 != other.fieldName7) return false + if (presenceMask[46] && FieldName8 != other.FieldName8) return false + if (presenceMask[47] && field_Name9 != other.field_Name9) return false + if (presenceMask[48] && Field_Name10 != other.Field_Name10) return false + if (presenceMask[49] && FIELD_NAME11 != other.FIELD_NAME11) return false + if (presenceMask[50] && FIELDName12 != other.FIELDName12) return false + if (presenceMask[51] && _FieldName13 != other._FieldName13) return false + if (presenceMask[52] && __FieldName14 != other.__FieldName14) return false + if (presenceMask[53] && field_Name15 != other.field_Name15) return false + if (presenceMask[54] && field__Name16 != other.field__Name16) return false + if (presenceMask[55] && fieldName17__ != other.fieldName17__) return false + if (presenceMask[56] && FieldName18__ != other.FieldName18__) return false + if (presenceMask[57] && messageSetCorrect != other.messageSetCorrect) return false if (oneofField != other.oneofField) return false return true } @@ -950,8 +951,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as NestedMessageInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && a != other.a) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && corecursive != other.corecursive) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && a != other.a) return false + if (presenceMask[1] && corecursive != other.corecursive) return false return true } @@ -1034,8 +1036,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapInt32Int32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1094,8 +1097,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapInt64Int64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1154,8 +1158,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapUint32Uint32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1214,8 +1219,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapUint64Uint64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1274,8 +1280,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapSint32Sint32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1334,8 +1341,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapSint64Sint64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1394,8 +1402,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapFixed32Fixed32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1454,8 +1463,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapFixed64Fixed64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1514,8 +1524,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapSfixed32Sfixed32EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1574,8 +1585,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapSfixed64Sfixed64EntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1634,8 +1646,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapInt32BoolEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1694,8 +1707,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapInt32FloatEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1754,8 +1768,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapInt32DoubleEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1814,8 +1829,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapInt32NestedMessageEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1874,8 +1890,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapBoolBoolEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1934,8 +1951,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapStringStringEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -1994,8 +2012,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapStringBytesEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && !value.contentEquals(other.value)) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && !value.contentEquals(other.value)) return false return true } @@ -2054,8 +2073,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapStringNestedMessageEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -2114,8 +2134,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapStringForeignMessageEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -2174,8 +2195,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapStringNestedEnumEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -2234,8 +2256,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MapStringForeignEnumEntryInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && key != other.key) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && value != other.value) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && key != other.key) return false + if (presenceMask[1] && value != other.value) return false return true } @@ -2294,8 +2317,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as DataInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] && groupUint32 != other.groupUint32) return false return true } @@ -2354,8 +2378,9 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MultiWordGroupFieldInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] && groupUint32 != other.groupUint32) return false return true } @@ -2470,7 +2495,8 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MessageSetCorrectExtension1Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && str != other.str) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && str != other.str) return false return true } @@ -2543,7 +2569,8 @@ class TestAllTypesProto2Internal: com.google.protobuf_test_messages.proto2.TestA if (other == null || this::class != other::class) return false other as MessageSetCorrectExtension2Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && i != other.i) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && i != other.i) return false return true } @@ -2717,7 +2744,8 @@ class ForeignMessageProto2Internal: com.google.protobuf_test_messages.proto2.For if (other == null || this::class != other::class) return false other as ForeignMessageProto2Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && c != other.c) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && c != other.c) return false return true } @@ -2794,8 +2822,9 @@ class GroupFieldInternal: com.google.protobuf_test_messages.proto2.GroupField, k if (other == null || this::class != other::class) return false other as GroupFieldInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] && groupUint32 != other.groupUint32) return false return true } @@ -2889,11 +2918,12 @@ class UnknownToTestAllTypesInternal: com.google.protobuf_test_messages.proto2.Un if (other == null || this::class != other::class) return false other as UnknownToTestAllTypesInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && optionalInt32 != other.optionalInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && optionalString != other.optionalString) return false - if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && nestedMessage != other.nestedMessage) return false - if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && optionalgroup != other.optionalgroup) return false - if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && optionalBool != other.optionalBool) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && optionalInt32 != other.optionalInt32) return false + if (presenceMask[1] && optionalString != other.optionalString) return false + if (presenceMask[2] && nestedMessage != other.nestedMessage) return false + if (presenceMask[3] && optionalgroup != other.optionalgroup) return false + if (presenceMask[4] && optionalBool != other.optionalBool) return false if (repeatedInt32 != other.repeatedInt32) return false return true } @@ -2964,7 +2994,8 @@ class UnknownToTestAllTypesInternal: com.google.protobuf_test_messages.proto2.Un if (other == null || this::class != other::class) return false other as OptionalGroupInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && a != other.a) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && a != other.a) return false return true } @@ -3161,7 +3192,8 @@ class OneStringProto2Internal: com.google.protobuf_test_messages.proto2.OneStrin if (other == null || this::class != other::class) return false other as OneStringProto2Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && data != other.data) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && data != other.data) return false return true } @@ -3240,8 +3272,9 @@ class ProtoWithKeywordsInternal: com.google.protobuf_test_messages.proto2.ProtoW if (other == null || this::class != other::class) return false other as ProtoWithKeywordsInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && inline != other.inline) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && concept != other.concept) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && inline != other.inline) return false + if (presenceMask[1] && concept != other.concept) return false if (requires != other.requires) return false return true } @@ -3441,45 +3474,46 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.prot if (other == null || this::class != other::class) return false other as TestAllRequiredTypesProto2Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && requiredInt32 != other.requiredInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && requiredInt64 != other.requiredInt64) return false - if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && requiredUint32 != other.requiredUint32) return false - if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && requiredUint64 != other.requiredUint64) return false - if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && requiredSint32 != other.requiredSint32) return false - if (presenceMask[5] != other.presenceMask[5] || presenceMask[5] && requiredSint64 != other.requiredSint64) return false - if (presenceMask[6] != other.presenceMask[6] || presenceMask[6] && requiredFixed32 != other.requiredFixed32) return false - if (presenceMask[7] != other.presenceMask[7] || presenceMask[7] && requiredFixed64 != other.requiredFixed64) return false - if (presenceMask[8] != other.presenceMask[8] || presenceMask[8] && requiredSfixed32 != other.requiredSfixed32) return false - if (presenceMask[9] != other.presenceMask[9] || presenceMask[9] && requiredSfixed64 != other.requiredSfixed64) return false - if (presenceMask[10] != other.presenceMask[10] || presenceMask[10] && requiredFloat != other.requiredFloat) return false - if (presenceMask[11] != other.presenceMask[11] || presenceMask[11] && requiredDouble != other.requiredDouble) return false - if (presenceMask[12] != other.presenceMask[12] || presenceMask[12] && requiredBool != other.requiredBool) return false - if (presenceMask[13] != other.presenceMask[13] || presenceMask[13] && requiredString != other.requiredString) return false - if (presenceMask[14] != other.presenceMask[14] || presenceMask[14] && !requiredBytes.contentEquals(other.requiredBytes)) return false - if (presenceMask[15] != other.presenceMask[15] || presenceMask[15] && requiredNestedMessage != other.requiredNestedMessage) return false - if (presenceMask[16] != other.presenceMask[16] || presenceMask[16] && requiredForeignMessage != other.requiredForeignMessage) return false - if (presenceMask[17] != other.presenceMask[17] || presenceMask[17] && requiredNestedEnum != other.requiredNestedEnum) return false - if (presenceMask[18] != other.presenceMask[18] || presenceMask[18] && requiredForeignEnum != other.requiredForeignEnum) return false - if (presenceMask[19] != other.presenceMask[19] || presenceMask[19] && requiredStringPiece != other.requiredStringPiece) return false - if (presenceMask[20] != other.presenceMask[20] || presenceMask[20] && requiredCord != other.requiredCord) return false - if (presenceMask[21] != other.presenceMask[21] || presenceMask[21] && recursiveMessage != other.recursiveMessage) return false - if (presenceMask[22] != other.presenceMask[22] || presenceMask[22] && optionalRecursiveMessage != other.optionalRecursiveMessage) return false - if (presenceMask[23] != other.presenceMask[23] || presenceMask[23] && data != other.data) return false - if (presenceMask[24] != other.presenceMask[24] || presenceMask[24] && defaultInt32 != other.defaultInt32) return false - if (presenceMask[25] != other.presenceMask[25] || presenceMask[25] && defaultInt64 != other.defaultInt64) return false - if (presenceMask[26] != other.presenceMask[26] || presenceMask[26] && defaultUint32 != other.defaultUint32) return false - if (presenceMask[27] != other.presenceMask[27] || presenceMask[27] && defaultUint64 != other.defaultUint64) return false - if (presenceMask[28] != other.presenceMask[28] || presenceMask[28] && defaultSint32 != other.defaultSint32) return false - if (presenceMask[29] != other.presenceMask[29] || presenceMask[29] && defaultSint64 != other.defaultSint64) return false - if (presenceMask[30] != other.presenceMask[30] || presenceMask[30] && defaultFixed32 != other.defaultFixed32) return false - if (presenceMask[31] != other.presenceMask[31] || presenceMask[31] && defaultFixed64 != other.defaultFixed64) return false - if (presenceMask[32] != other.presenceMask[32] || presenceMask[32] && defaultSfixed32 != other.defaultSfixed32) return false - if (presenceMask[33] != other.presenceMask[33] || presenceMask[33] && defaultSfixed64 != other.defaultSfixed64) return false - if (presenceMask[34] != other.presenceMask[34] || presenceMask[34] && defaultFloat != other.defaultFloat) return false - if (presenceMask[35] != other.presenceMask[35] || presenceMask[35] && defaultDouble != other.defaultDouble) return false - if (presenceMask[36] != other.presenceMask[36] || presenceMask[36] && defaultBool != other.defaultBool) return false - if (presenceMask[37] != other.presenceMask[37] || presenceMask[37] && defaultString != other.defaultString) return false - if (presenceMask[38] != other.presenceMask[38] || presenceMask[38] && !defaultBytes.contentEquals(other.defaultBytes)) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && requiredInt32 != other.requiredInt32) return false + if (presenceMask[1] && requiredInt64 != other.requiredInt64) return false + if (presenceMask[2] && requiredUint32 != other.requiredUint32) return false + if (presenceMask[3] && requiredUint64 != other.requiredUint64) return false + if (presenceMask[4] && requiredSint32 != other.requiredSint32) return false + if (presenceMask[5] && requiredSint64 != other.requiredSint64) return false + if (presenceMask[6] && requiredFixed32 != other.requiredFixed32) return false + if (presenceMask[7] && requiredFixed64 != other.requiredFixed64) return false + if (presenceMask[8] && requiredSfixed32 != other.requiredSfixed32) return false + if (presenceMask[9] && requiredSfixed64 != other.requiredSfixed64) return false + if (presenceMask[10] && requiredFloat != other.requiredFloat) return false + if (presenceMask[11] && requiredDouble != other.requiredDouble) return false + if (presenceMask[12] && requiredBool != other.requiredBool) return false + if (presenceMask[13] && requiredString != other.requiredString) return false + if (presenceMask[14] && !requiredBytes.contentEquals(other.requiredBytes)) return false + if (presenceMask[15] && requiredNestedMessage != other.requiredNestedMessage) return false + if (presenceMask[16] && requiredForeignMessage != other.requiredForeignMessage) return false + if (presenceMask[17] && requiredNestedEnum != other.requiredNestedEnum) return false + if (presenceMask[18] && requiredForeignEnum != other.requiredForeignEnum) return false + if (presenceMask[19] && requiredStringPiece != other.requiredStringPiece) return false + if (presenceMask[20] && requiredCord != other.requiredCord) return false + if (presenceMask[21] && recursiveMessage != other.recursiveMessage) return false + if (presenceMask[22] && optionalRecursiveMessage != other.optionalRecursiveMessage) return false + if (presenceMask[23] && data != other.data) return false + if (presenceMask[24] && defaultInt32 != other.defaultInt32) return false + if (presenceMask[25] && defaultInt64 != other.defaultInt64) return false + if (presenceMask[26] && defaultUint32 != other.defaultUint32) return false + if (presenceMask[27] && defaultUint64 != other.defaultUint64) return false + if (presenceMask[28] && defaultSint32 != other.defaultSint32) return false + if (presenceMask[29] && defaultSint64 != other.defaultSint64) return false + if (presenceMask[30] && defaultFixed32 != other.defaultFixed32) return false + if (presenceMask[31] && defaultFixed64 != other.defaultFixed64) return false + if (presenceMask[32] && defaultSfixed32 != other.defaultSfixed32) return false + if (presenceMask[33] && defaultSfixed64 != other.defaultSfixed64) return false + if (presenceMask[34] && defaultFloat != other.defaultFloat) return false + if (presenceMask[35] && defaultDouble != other.defaultDouble) return false + if (presenceMask[36] && defaultBool != other.defaultBool) return false + if (presenceMask[37] && defaultString != other.defaultString) return false + if (presenceMask[38] && !defaultBytes.contentEquals(other.defaultBytes)) return false return true } @@ -3759,9 +3793,10 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.prot if (other == null || this::class != other::class) return false other as NestedMessageInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && a != other.a) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && corecursive != other.corecursive) return false - if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && optionalCorecursive != other.optionalCorecursive) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && a != other.a) return false + if (presenceMask[1] && corecursive != other.corecursive) return false + if (presenceMask[2] && optionalCorecursive != other.optionalCorecursive) return false return true } @@ -3850,8 +3885,9 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.prot if (other == null || this::class != other::class) return false other as DataInternal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && groupInt32 != other.groupInt32) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && groupUint32 != other.groupUint32) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && groupInt32 != other.groupInt32) return false + if (presenceMask[1] && groupUint32 != other.groupUint32) return false return true } @@ -3966,7 +4002,8 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.prot if (other == null || this::class != other::class) return false other as MessageSetCorrectExtension1Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && str != other.str) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && str != other.str) return false return true } @@ -4039,7 +4076,8 @@ class TestAllRequiredTypesProto2Internal: com.google.protobuf_test_messages.prot if (other == null || this::class != other::class) return false other as MessageSetCorrectExtension2Internal other.checkRequiredFields() - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && i != other.i) return false + if (presenceMask != other.presenceMask) return false + if (presenceMask[0] && i != other.i) return false return true } diff --git a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto3/_rpc_internal/TestMessagesProto3.kt b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto3/_rpc_internal/TestMessagesProto3.kt index 7d67fdd0f..8d515a564 100644 --- a/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto3/_rpc_internal/TestMessagesProto3.kt +++ b/tests/protobuf-conformance/src/main/generated-code/kotlin-multiplatform/com/google/protobuf_test_messages/proto3/_rpc_internal/TestMessagesProto3.kt @@ -344,6 +344,7 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA if (other == null || this::class != other::class) return false other as TestAllTypesProto3Internal other.checkRequiredFields() + if (presenceMask != other.presenceMask) return false if (optionalInt32 != other.optionalInt32) return false if (optionalInt64 != other.optionalInt64) return false if (optionalUint32 != other.optionalUint32) return false @@ -359,14 +360,14 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA if (optionalBool != other.optionalBool) return false if (optionalString != other.optionalString) return false if (!optionalBytes.contentEquals(other.optionalBytes)) return false - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && optionalNestedMessage != other.optionalNestedMessage) return false - if (presenceMask[1] != other.presenceMask[1] || presenceMask[1] && optionalForeignMessage != other.optionalForeignMessage) return false + if (presenceMask[0] && optionalNestedMessage != other.optionalNestedMessage) return false + if (presenceMask[1] && optionalForeignMessage != other.optionalForeignMessage) return false if (optionalNestedEnum != other.optionalNestedEnum) return false if (optionalForeignEnum != other.optionalForeignEnum) return false if (optionalAliasedEnum != other.optionalAliasedEnum) return false if (optionalStringPiece != other.optionalStringPiece) return false if (optionalCord != other.optionalCord) return false - if (presenceMask[2] != other.presenceMask[2] || presenceMask[2] && recursiveMessage != other.recursiveMessage) return false + if (presenceMask[2] && recursiveMessage != other.recursiveMessage) return false if (repeatedInt32 != other.repeatedInt32) return false if (repeatedInt64 != other.repeatedInt64) return false if (repeatedUint32 != other.repeatedUint32) return false @@ -435,15 +436,15 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA if (mapStringForeignMessage != other.mapStringForeignMessage) return false if (mapStringNestedEnum != other.mapStringNestedEnum) return false if (mapStringForeignEnum != other.mapStringForeignEnum) return false - if (presenceMask[3] != other.presenceMask[3] || presenceMask[3] && optionalBoolWrapper != other.optionalBoolWrapper) return false - if (presenceMask[4] != other.presenceMask[4] || presenceMask[4] && optionalInt32Wrapper != other.optionalInt32Wrapper) return false - if (presenceMask[5] != other.presenceMask[5] || presenceMask[5] && optionalInt64Wrapper != other.optionalInt64Wrapper) return false - if (presenceMask[6] != other.presenceMask[6] || presenceMask[6] && optionalUint32Wrapper != other.optionalUint32Wrapper) return false - if (presenceMask[7] != other.presenceMask[7] || presenceMask[7] && optionalUint64Wrapper != other.optionalUint64Wrapper) return false - if (presenceMask[8] != other.presenceMask[8] || presenceMask[8] && optionalFloatWrapper != other.optionalFloatWrapper) return false - if (presenceMask[9] != other.presenceMask[9] || presenceMask[9] && optionalDoubleWrapper != other.optionalDoubleWrapper) return false - if (presenceMask[10] != other.presenceMask[10] || presenceMask[10] && optionalStringWrapper != other.optionalStringWrapper) return false - if (presenceMask[11] != other.presenceMask[11] || presenceMask[11] && optionalBytesWrapper != other.optionalBytesWrapper) return false + if (presenceMask[3] && optionalBoolWrapper != other.optionalBoolWrapper) return false + if (presenceMask[4] && optionalInt32Wrapper != other.optionalInt32Wrapper) return false + if (presenceMask[5] && optionalInt64Wrapper != other.optionalInt64Wrapper) return false + if (presenceMask[6] && optionalUint32Wrapper != other.optionalUint32Wrapper) return false + if (presenceMask[7] && optionalUint64Wrapper != other.optionalUint64Wrapper) return false + if (presenceMask[8] && optionalFloatWrapper != other.optionalFloatWrapper) return false + if (presenceMask[9] && optionalDoubleWrapper != other.optionalDoubleWrapper) return false + if (presenceMask[10] && optionalStringWrapper != other.optionalStringWrapper) return false + if (presenceMask[11] && optionalBytesWrapper != other.optionalBytesWrapper) return false if (repeatedBoolWrapper != other.repeatedBoolWrapper) return false if (repeatedInt32Wrapper != other.repeatedInt32Wrapper) return false if (repeatedInt64Wrapper != other.repeatedInt64Wrapper) return false @@ -453,12 +454,12 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA if (repeatedDoubleWrapper != other.repeatedDoubleWrapper) return false if (repeatedStringWrapper != other.repeatedStringWrapper) return false if (repeatedBytesWrapper != other.repeatedBytesWrapper) return false - if (presenceMask[12] != other.presenceMask[12] || presenceMask[12] && optionalDuration != other.optionalDuration) return false - if (presenceMask[13] != other.presenceMask[13] || presenceMask[13] && optionalTimestamp != other.optionalTimestamp) return false - if (presenceMask[14] != other.presenceMask[14] || presenceMask[14] && optionalFieldMask != other.optionalFieldMask) return false - if (presenceMask[15] != other.presenceMask[15] || presenceMask[15] && optionalStruct != other.optionalStruct) return false - if (presenceMask[16] != other.presenceMask[16] || presenceMask[16] && optionalAny != other.optionalAny) return false - if (presenceMask[17] != other.presenceMask[17] || presenceMask[17] && optionalValue != other.optionalValue) return false + if (presenceMask[12] && optionalDuration != other.optionalDuration) return false + if (presenceMask[13] && optionalTimestamp != other.optionalTimestamp) return false + if (presenceMask[14] && optionalFieldMask != other.optionalFieldMask) return false + if (presenceMask[15] && optionalStruct != other.optionalStruct) return false + if (presenceMask[16] && optionalAny != other.optionalAny) return false + if (presenceMask[17] && optionalValue != other.optionalValue) return false if (optionalNullValue != other.optionalNullValue) return false if (repeatedDuration != other.repeatedDuration) return false if (repeatedTimestamp != other.repeatedTimestamp) return false @@ -759,8 +760,9 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA if (other == null || this::class != other::class) return false other as NestedMessageInternal other.checkRequiredFields() + if (presenceMask != other.presenceMask) return false if (a != other.a) return false - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && corecursive != other.corecursive) return false + if (presenceMask[0] && corecursive != other.corecursive) return false return true } @@ -1512,8 +1514,9 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA if (other == null || this::class != other::class) return false other as MapStringNestedMessageEntryInternal other.checkRequiredFields() + if (presenceMask != other.presenceMask) return false if (key != other.key) return false - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && value != other.value) return false + if (presenceMask[0] && value != other.value) return false return true } @@ -1566,8 +1569,9 @@ class TestAllTypesProto3Internal: com.google.protobuf_test_messages.proto3.TestA if (other == null || this::class != other::class) return false other as MapStringForeignMessageEntryInternal other.checkRequiredFields() + if (presenceMask != other.presenceMask) return false if (key != other.key) return false - if (presenceMask[0] != other.presenceMask[0] || presenceMask[0] && value != other.value) return false + if (presenceMask[0] && value != other.value) return false return true }