diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-22 12:21:08 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-22 12:28:18 +0100 |
| commit | c965bc54982d6b90ae91edd3bb1103a8d356e59a (patch) | |
| tree | 129d5970bfde8f80a900b54b88ac9643e5b1c836 /src/kernel/NeKit/Vettable.h | |
| parent | 36dee4f0d8ea806b2f061ed66a89e812ab007ed2 (diff) | |
feat: kernel: New Vettable API, remove IsAcceptable concept.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/kernel/NeKit/Vettable.h')
| -rw-r--r-- | src/kernel/NeKit/Vettable.h | 21 |
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 |
