docs: static <K, V> Map.Entry<K, V> parseEntry(CodedInputStream input, Metadata<K, V> metadata,
              ExtensionRegistryLite extensionRegistry) throws IOException {
          K key = metadata.defaultKey;
          V value = metadata.defaultValue;
          while (true) {
              int tag = input.readTag();
              if (tag == 0) {
                  break;
              }
              if (tag == CodedConstant.makeTag(KEY_FIELD_NUMBER, metadata.keyType.getWireType())) {
                  key = parseField(input, extensionRegistry, metadata.keyType, key);
              } else if (tag == CodedConstant.makeTag(VALUE_FIELD_NUMBER, metadata.valueType.getWireType())) {
                  value = parseField(input, extensionRegistry, metadata.valueType, value);
              } else {
                  if (!input.skipField(tag)) {
                      break;
                  }
              }
          }
          return new AbstractMap.SimpleImmutableEntry<K, V>(key, value);
      }