aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/hrc/typing.py
diff options
context:
space:
mode:
authorHsiangNianian <i@jyunko.cn>2025-01-04 22:38:23 +0800
committerHsiangNianian <i@jyunko.cn>2025-01-04 22:38:23 +0800
commitc990518cb533a793399e44edbb4bc036342c7175 (patch)
tree8e2bd0f833b803a73dea7d88e7c294cf3d078d4d /src/hrc/typing.py
parentbc57c1410c08323ba37114082d0fe609fafc2c5d (diff)
downloadHydroRollCore-main.tar.gz
HydroRollCore-main.zip
feat(core): Initialize core components and configuration modelsHEADmain
Diffstat (limited to 'src/hrc/typing.py')
-rw-r--r--src/hrc/typing.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/hrc/typing.py b/src/hrc/typing.py
new file mode 100644
index 0000000..a207c80
--- /dev/null
+++ b/src/hrc/typing.py
@@ -0,0 +1,23 @@
+# ruff: noqa: TCH001
+from typing import TYPE_CHECKING, Awaitable, Callable, Optional, TypeVar
+
+if TYPE_CHECKING:
+ from typing import Any
+
+ from hrc.service import Service
+ from hrc.core import Core
+ from hrc.config import ConfigModel
+ from hrc.event import Event
+ from hrc.rule import Rule
+
+
+StateT = TypeVar("StateT")
+EventT = TypeVar("EventT", bound="Event[Any]")
+RuleT = TypeVar("RuleT", bound="Rule[Any, Any, Any]")
+ConfigT = TypeVar("ConfigT", bound=Optional["ConfigModel"])
+ServiceT = TypeVar("ServiceT", bound="Service[Any, Any]")
+
+CoreHook = Callable[["Core"], Awaitable[None]]
+RuleHook = Callable[["Rule"], Awaitable[None]]
+ServiceHook = Callable[["Service[Any, Any]"], Awaitable[None]]
+EventHook = Callable[["Event[Any]"], Awaitable[None]]