Skip to content

Commit aeb7c84

Browse files
committed
Added missing reactive types to TypeTraits.h.
1 parent 2b35b92 commit aeb7c84

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

include/react/TypeTraits.h

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,15 @@ class EventSource;
3434
template <typename D, typename E, typename TOp>
3535
class TempEvents;
3636

37+
template <typename D>
38+
class Observer;
39+
40+
template <typename D>
41+
class ScopedObserver;
42+
43+
template <typename TSourceDomain, typename TTargetDomain>
44+
class Continuation;
45+
3746
///////////////////////////////////////////////////////////////////////////////////////////////////
3847
/// IsSignal
3948
///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -64,6 +73,27 @@ struct IsEvent<EventSource<D,T>> { static const bool value = true; };
6473
template <typename D, typename T, typename TOp>
6574
struct IsEvent<TempEvents<D,T,TOp>> { static const bool value = true; };
6675

76+
///////////////////////////////////////////////////////////////////////////////////////////////////
77+
/// IsObserver
78+
///////////////////////////////////////////////////////////////////////////////////////////////////
79+
template <typename T>
80+
struct IsObserver { static const bool value = false; };
81+
82+
template <typename D>
83+
struct IsObserver<Observer<D>> { static const bool value = true; };
84+
85+
template <typename D>
86+
struct IsObserver<ScopedObserver<D>> { static const bool value = true; };
87+
88+
///////////////////////////////////////////////////////////////////////////////////////////////////
89+
/// IsContinuation
90+
///////////////////////////////////////////////////////////////////////////////////////////////////
91+
template <typename T>
92+
struct IsContinuation { static const bool value = false; };
93+
94+
template <typename D, typename D2>
95+
struct IsContinuation<Continuation<D,D2>> { static const bool value = true; };
96+
6797
///////////////////////////////////////////////////////////////////////////////////////////////////
6898
/// IsReactive
6999
///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -88,6 +118,15 @@ struct IsReactive<EventSource<D,T>> { static const bool value = true; };
88118
template <typename D, typename T, typename TOp>
89119
struct IsReactive<TempEvents<D,T,TOp>> { static const bool value = true; };
90120

121+
template <typename D>
122+
struct IsReactive<Observer<D>> { static const bool value = true; };
123+
124+
template <typename D>
125+
struct IsReactive<ScopedObserver<D>> { static const bool value = true; };
126+
127+
template <typename D, typename D2>
128+
struct IsReactive<Continuation<D,D2>> { static const bool value = true; };
129+
91130
///////////////////////////////////////////////////////////////////////////////////////////////////
92131
/// RemoveInput
93132
///////////////////////////////////////////////////////////////////////////////////////////////////

0 commit comments

Comments
 (0)