class_docstr: Implementation based on:
  https://mariadb.com/kb/en/resultset-row/#binary-resultset-row
  https://dev.mysql.com/doc/internals/en/null-bitmap.html
code: def setup(self):
      data = self._kwargs.get("data", {})
      columns = self._kwargs.get("columns", {})
  
      self.value = [b"\x00"]
      nulls = [0]
      for i, el in enumerate(data):
          if i > 0 and (i + 2) % 8 == 0:
              nulls.append(0)
          if el is None:
              if i < 6:
                  nulls[-1] = nulls[-1] + (1 << ((i + 2) % 8))
              else:
                  nulls[-1] = nulls[-1] + (1 << ((i - 6) % 8))
      self.value.append(bytes(nulls))
  
      for i, col in enumerate(columns):
          # NOTE at this moment all types sends as strings, and it works
          val = data[i]
          if val is None:
              continue
  
          enc = None
          env_val = None
          col_type = col["type"]
          if col_type == TYPES.MYSQL_TYPE_DOUBLE:
              enc = "<d"
              val = float(val)
          elif col_type == TYPES.MYSQL_TYPE_LONGLONG:
              enc = "<q"
              val = int(float(val))
          elif col_type == TYPES.MYSQL_TYPE_LONG:
              enc = "<l"
              val = int(float(val))
          elif col_type == TYPES.MYSQL_TYPE_FLOAT:
              enc = "<f"
              val = float(val)
          elif col_type == TYPES.MYSQL_TYPE_YEAR:
              enc = "<h"
              val = int(float(val))
          elif col_type == TYPES.MYSQL_TYPE_DATE:
              env_val = self.encode_date(val)
          elif col_type == TYPES.MYSQL_TYPE_TIMESTAMP:
              env_val = self.encode_date(val)
          elif col_type == TYPES.MYSQL_TYPE_DATETIME:
              env_val = self.encode_date(val)
          elif col_type == TYPES.MYSQL_TYPE_TIME:
              enc = ""
          elif col_type == TYPES.MYSQL_TYPE_NEWDECIMAL:
              enc = ""
          else:
              enc = "string"
  
          if enc == "":
              raise Exception(
                  f"Column with type {col_type} cant be encripted"
              )
  
          if enc == "string":
              self.value.append(
                  Datum("string<lenenc>", str(val)).toStringPacket()
              )
          else:
              if env_val is None:
                  env_val = struct.pack(enc, val)
              self.value.append(env_val)
  
file_path: mindsdb/mindsdb/api/mysql/mysql_proxy/data_types/mysql_packets/binary_resultset_row_package.py
imports: import datetime
  import struct
  import pandas
  from mindsdb.api.mysql.mysql_proxy.data_types.mysql_datum import Datum
  from mindsdb.api.mysql.mysql_proxy.data_types.mysql_packet import Packet
  from mindsdb.api.mysql.mysql_proxy.libs.constants.mysql import TYPES
label_desc: Use image node_id 1 for calling the BinaryResultsetRowPacket obj's underlying member method code with example usage: obj.setup() without return types