rainbowadn/rainbowadn/data/collection/trees/comparison/hashcomparator.py
2022-05-08 21:56:17 +03:00

22 lines
763 B
Python

from typing import Generic, TypeVar
from rainbowadn.data.collection.trees.comparison.comparator import Comparison, Left, Right
from rainbowadn.data.collection.trees.comparison.protocolcomparator import ProtocolComparator
from rainbowadn.hashing.hashpoint import HashPoint
__all__ = ('HashComparator',)
KeyType = TypeVar('KeyType')
class HashComparator(ProtocolComparator[KeyType], Generic[KeyType]):
def compare(self, original: HashPoint[KeyType], key: HashPoint[KeyType]) -> Comparison:
assert isinstance(original, HashPoint)
assert isinstance(key, HashPoint)
if key.point < original.point:
return Left()
elif key.point > original.point:
return Right()
else:
return self.equal