docs: public Packet readFrom(ByteBuffer src) {
          if (!headerComplete) {
              if (src.remaining() < HEADER_SIZE) {
                  return null;
              }
  
              byte version = src.get();
              if (VERSION != version) {
                  throw new IllegalArgumentException("Packet versions are not matching! Expected -> "
                          + VERSION + ", Incoming -> " + version);
              }
  
              flags = src.getChar();
              partitionId = src.getInt();
              size = src.getInt();
              headerComplete = true;
          }
  
          if (readValue(src)) {
              Packet packet = new Packet(payload, partitionId).resetFlagsTo(flags);
              reset();
              return packet;
          } else {
              return null;
          }
      }