summaryrefslogtreecommitdiffhomepage
path: root/src/kernel/NeKit/Vettable.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/NeKit/Vettable.h')
-rw-r--r--src/kernel/NeKit/Vettable.h21
1 files changed, 5 insertions, 16 deletions
diff --git a/src/kernel/NeKit/Vettable.h b/src/kernel/NeKit/Vettable.h
index e4c09624..a09a6aae 100644
--- a/src/kernel/NeKit/Vettable.h
+++ b/src/kernel/NeKit/Vettable.h
@@ -11,24 +11,13 @@
#include <CompilerKit/CompilerKit.h>
#include <NeKit/Config.h>
-namespace Kernel {
-template <class Type>
-struct Vettable final {
- using ResultType = Type;
- using TypeRef = Type&;
- using ConstType = const Type&;
- using TypePtr = Type*;
-
-
- static constexpr BOOL kValue = NO;
-};
+#define NE_VETTABLE static constexpr BOOL kVettable = YES
+#define NE_NON_VETTABLE static constexpr BOOL kVettable = NO
+namespace Kernel {
template <class Type>
-using FallbackType = Void (*)(const PropertyResult<Type>& type_value);
-
-template <class Type, FallbackType<Type> OnFallback>
-concept IsVettable = requires() {
- { Vettable<Type>::kValue ? TrueResult<Type>{} : OnFallback(PropertyResult<Type>{}) };
+concept IsVettable = requires(Type) {
+ (Type::kVettable);
};
} // namespace Kernel