docs: public MessagePacker packLong(long v)
              throws IOException
      {
          if (v < -(1L << 5)) {
              if (v < -(1L << 15)) {
                  if (v < -(1L << 31)) {
                      writeByteAndLong(INT64, v);
                  }
                  else {
                      writeByteAndInt(INT32, (int) v);
                  }
              }
              else {
                  if (v < -(1 << 7)) {
                      writeByteAndShort(INT16, (short) v);
                  }
                  else {
                      writeByteAndByte(INT8, (byte) v);
                  }
              }
          }
          else if (v < (1 << 7)) {
              // fixnum
              writeByte((byte) v);
          }
          else {
              if (v < (1L << 16)) {
                  if (v < (1 << 8)) {
                      writeByteAndByte(UINT8, (byte) v);
                  }
                  else {
                      writeByteAndShort(UINT16, (short) v);
                  }
              }
              else {
                  if (v < (1L << 32)) {
                      writeByteAndInt(UINT32, (int) v);
                  }
                  else {
                      writeByteAndLong(UINT64, v);
                  }
              }
          }
          return this;
      }