feat(rx): add cond fabric

This commit is contained in:
rus07tam 2025-10-27 11:25:16 +00:00
parent 737f21bf06
commit e7e6491cc3
2 changed files with 15 additions and 0 deletions

View file

@ -4,6 +4,7 @@ from .bindable import Bindable
from .chain import chain
from .combine import combine
from .concat import concat
from .cond import cond
from .const import const
from .filter import filter # noqa: W0622 # pylint: disable=W0622
from .map import map # noqa: W0622 # pylint: disable=W0622
@ -18,6 +19,7 @@ __all__ = [
"chain",
"combine",
"concat",
"cond",
"const",
"filter",
"map",

View file

@ -0,0 +1,13 @@
from typing import Callable
def cond[**P, T, F](
condition: Callable[P, bool],
if_true: Callable[P, T],
if_false: Callable[P, F],
) -> Callable[P, T | F]:
return lambda *args, **kw: (
if_true(*args, **kw)
if condition(*args, **kw)
else if_false(*args, **kw)
)