# Copyright (c) PARRRATE T&V 2021. All rights reserved. from typing import Callable, TypeVar from bu4.transform.states.transformstate import TransformState from bu4.transform.targets.attarget import ATTarget __all__ = ('ATLambda',) T = TypeVar('T') class ATLambda(ATTarget[T]): def __init__(self, lambda_: Callable[[T], TransformState[T]]): self.lambda_ = lambda_ def given(self, transformed: T) -> TransformState[T]: return self.lambda_(transformed)