code: def rank(self, score):
          '''Return the 0-based index (rank) of ``score``.
  
          If the score is not available it returns a negative integer which
          absolute score is the right most closest index with score less than
          ``score``.
          '''
          node = self._head
          rank = 0
          for i in range(self._level-1, -1, -1):
              while node.next[i] and node.next[i].score < score:
                  rank += node.width[i]
                  node = node.next[i]
          node = node.next[0]
          if node and node.score == score:
              return rank
          else:
              return -2 - ranf rank(self, score):
          '''Return the 0-based index (rank) of ``score``.
  
          If the score is not available it returns a negative integer which
          absolute score is the right most closest index with score less than
          ``score``.
          '''
          node = self._head
          rank = 0
          for i in range(self._level-1, -1, -1):
              while node.next[i] and node.next[i].score < score:
                  rank += node.width[i]
                  node = node.next[i]
          node = node.next[0]
          if node and node.score == score:
              return rank
          else:
              return -2 - rank
docs: Return the 0-based index (rank) of ``score``.
  
          If the score is not available it returns a negative integer which
          absolute score is the right most closest index with score less than
          ``score``.