static boolean skipValue(ReadBuffer buffer, int wireType) {
      int remaining = buffer.available();
      switch (wireType) {
        case WIRETYPE_VARINT:
          for (int i = 0; i < remaining; i++) {
            if (buffer.readByte() >= 0) return true;
          }
          return false;
        case WIRETYPE_FIXED64:
          return buffer.skip(8) == 8;
        case WIRETYPE_LENGTH_DELIMITED:
          int length = buffer.readVarint32();
          return buffer.skip(length) == length;
        case WIRETYPE_FIXED32:
          return buffer.skip(4) == 4;
        default:
          throw new IllegalArgumentException(
            "Malformed: invalid wireType " + wireType + " at byte " + buffer.pos());
      }
    }
"Each key in the streamed message is a varint with the value {@code (field_number << 3) |
wire_type}"

<p>See https://developers.google.com/protocol-buffers/docs/encoding#structure
zipkin/src/main/java/zipkin2/internal/Proto3Fields.java