Source code for app.components.component.entrypoint

# SPDX-License-Identifier: GPLv3-or-later
# Copyright © 2025 pygaindalf Rui Pinheiro


from collections.abc import Callable
from typing import Concatenate
from typing import cast as typing_cast

from .component import Component


# MARK: Component entrypoint decorator
type Entrypoint[T: Component, **P, R] = Callable[Concatenate[T, P], R]


[docs] def component_entrypoint[T: Component, **P, R](entrypoint: Entrypoint[T, P, R]) -> Entrypoint[T, P, R]: return typing_cast("T", Component).component_entrypoint_decorator(entrypoint)