rainbowadn/rainbowadn/hashing/localmetaorigin.py
2022-06-07 20:58:26 +03:00

23 lines
769 B
Python

from typing import Generic, TypeVar
from rainbowadn.hashing.hashpoint import HashPoint
from rainbowadn.hashing.metaorigin import MetaOrigin
from rainbowadn.hashing.origin import Origin
from rainbowadn.hashing.rainbow_factory import RainbowFactory
__all__ = ('LocalMetaOrigin',)
Mentioned = TypeVar('Mentioned')
class LocalMetaOrigin(MetaOrigin[Mentioned], Generic[Mentioned]):
def __init__(self, origin: Origin[Mentioned]):
assert isinstance(origin, Origin)
self._origin = origin
def origin(self, factory: RainbowFactory[Mentioned], point: bytes) -> Origin[Mentioned]:
assert isinstance(factory, RainbowFactory)
assert isinstance(point, bytes)
assert len(point) == HashPoint.HASH_LENGTH
return self._origin