rainbowadn/rainbowadn/flow/sequence/_dispatchmapper.py
2022-07-11 05:21:20 +03:00

27 lines
754 B
Python

from typing import Generic, TypeVar
from rainbowadn.flow.core import *
from ._sequencedispatch import *
from ._sequencedispatcher import *
__all__ = ('DispatchMapper',)
Element = TypeVar('Element')
Out = TypeVar('Out')
class DispatchMapper(
Mapper[SequenceDispatcher[Element, Out], Out],
Generic[Out, Element]
):
def __init__(self, dispatch: SequenceDispatch[Element, Out]):
assert isinstance(dispatch, SequenceDispatch)
self.dispatch = dispatch
async def map(self, element: SequenceDispatcher[Element, Out]) -> Out:
assert isinstance(element, SequenceDispatcher)
return await element.dispatch(self.dispatch)
def loose(self) -> Mapper[SequenceDispatcher[Element, Out], Out]:
return self