diff options
author | crupest <crupest@outlook.com> | 2024-11-11 01:12:29 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2024-12-18 18:31:27 +0800 |
commit | 6f285760e1432a6c7f60d94c15af4bb3f29ce8fa (patch) | |
tree | ce5a6b3dc74a012766c6d09e7e97cf8eba25ff9e /tools/cru-py/cru/_util/_event.py | |
parent | d2ed5fa3e26c3a6d0ad700791bc7de955b8d68e0 (diff) | |
download | crupest-6f285760e1432a6c7f60d94c15af4bb3f29ce8fa.tar.gz crupest-6f285760e1432a6c7f60d94c15af4bb3f29ce8fa.tar.bz2 crupest-6f285760e1432a6c7f60d94c15af4bb3f29ce8fa.zip |
HALF WORK: 2024.11.28
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: ) |