diff options
Diffstat (limited to 'tools/cru-py/cru/util/_event.py')
-rw-r--r-- | tools/cru-py/cru/util/_event.py | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/tools/cru-py/cru/util/_event.py b/tools/cru-py/cru/util/_event.py deleted file mode 100644 index 813e33f..0000000 --- a/tools/cru-py/cru/util/_event.py +++ /dev/null @@ -1,41 +0,0 @@ -from typing import ParamSpec, TypeVar, Callable - -from ._list import CruInplaceList, CruList - -P = ParamSpec('P') -R = TypeVar('R') -F = Callable[P, R] - - -class EventHandlerToken: - def __init__(self, event: "Event", handler: F, once: bool = False) -> None: - self._event = event - self._handler = handler - self._once = once - - @property - def event(self) -> "Event": - return self._event - - @property - def handler(self) -> F: - return self._handler - - @property - def once(self) -> bool: - return self._once - - -class Event: - def __init__(self, name: str) -> None: - self._name = name - self._tokens: CruInplaceList[EventHandlerToken] = CruInplaceList() - - def register(self, handler: F, once: bool = False) -> EventHandlerToken: - token = EventHandlerToken(self, handler, once) - self._tokens.append(token) - return token - - def unregister(self, *h: EventHandlerToken | F) -> int: - - self._tokens.find_all_indices_if(lambda t: ) |