in crumb-compiler/src/main/kotlin/com/uber/crumb/internal/wire/ProtoAdapter.kt [382:401]
override fun decode(reader: ProtoReader): Map<K, V> {
var key: K? = null
var value: V? = null
val token = reader.beginMessage()
while (true) {
val tag = reader.nextTag()
if (tag == -1) break
when (tag) {
1 -> key = entryAdapter.keyAdapter.decode(reader)
2 -> value = entryAdapter.valueAdapter.decode(reader)
// Ignore unknown tags in map entries.
}
}
reader.endMessageAndGetUnknownFields(token)
check(key != null) { "Map entry with null key" }
check(value != null) { "Map entry with null value" }
return mapOf(key to value)
}