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

21 lines
853 B
Python

from rainbowadn.data.atomic.plain import Plain
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__ = ('PlainComparator',)
class PlainComparator(ProtocolComparator[Plain]):
def compare(self, original: HashPoint[Plain], key: HashPoint[Plain]) -> Comparison:
assert isinstance(original, HashPoint)
assert isinstance(key, HashPoint)
original_value = self.resolver.resolve(original)
key_value = self.resolver.resolve(key)
if key_value.source < original_value.source:
return Left()
elif key_value.source > original_value.source:
return Right()
else:
return self.equal