code: def count(self, txn, prefix=None):
          
          key_from = struct.pack('>H', self._slot)
          if prefix:
              key_from += self._serialize_key(prefix)
          kfl = len(key_from)
  
          cnt = 0
          cursor = txn._txn.cursor()
          has_more = cursor.set_range(key_from)
          while has_more:
              _key = cursor.key()
              _prefix = _key[:kfl]
              if _prefix != key_from:
                  break
              cnt += 1
              has_more = cursor.next()
  
          return cnt
docs: Count number of records in the persistent map. When no prefix
          is given, the total number of records is returned. When a prefix
          is given, only the number of records with keys that have this
          prefix are counted.
  
          :param txn: The transaction in which to run.
          :type txn: :class:`zlmdb.Transaction`
  
          :param prefix: The key prefix of records to count.
          :type prefix: object
  
          :returns: The number of records.
          :rtype: int