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``.

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 - rank