diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-15 17:22:51 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-15 17:24:59 +0100 |
| commit | 79090c31b60c95dcabd4572031353c9e0f54fc67 (patch) | |
| tree | 5d8c7ccedfb040ab28c4f855f438d73b593e8c74 /src/kernel/NeKit | |
| parent | 0b11c0cdac02f67dba3c55b97269edba212906ed (diff) | |
feat: new properties and improved vettable system.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/kernel/NeKit')
| -rw-r--r-- | src/kernel/NeKit/Config.h | 8 | ||||
| -rw-r--r-- | src/kernel/NeKit/Vettable.h | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/kernel/NeKit/Config.h b/src/kernel/NeKit/Config.h index 900ea28c..7cf01a2c 100644 --- a/src/kernel/NeKit/Config.h +++ b/src/kernel/NeKit/Config.h @@ -203,4 +203,12 @@ struct TrueResult final { static constexpr bool kValue = true; }; + +template <class Type> +struct PropertyResult final { + using ResultType = Type; + using ResultTypeRef = ResultType&; + + static constexpr bool kValue = Type::kValue; +}; } // namespace Kernel diff --git a/src/kernel/NeKit/Vettable.h b/src/kernel/NeKit/Vettable.h index c8c27fe3..294aaad5 100644 --- a/src/kernel/NeKit/Vettable.h +++ b/src/kernel/NeKit/Vettable.h @@ -40,12 +40,12 @@ struct Vettable<IVettable> final { static constexpr bool kValue = true; }; -using FallbackType = bool (*)(bool); +using FallbackType = bool (*)(bool type_value); /// @brief Concept version of Vettable. template <typename Type, FallbackType OnFallback> concept IsVettable = requires() { - { Vettable<Type>::kValue ? TrueResult<Type>::kValue : OnFallback(FalseResult<Type>::kValue) }; + { Vettable<Type>::kValue ? TrueResult<Type>::kValue : OnFallback(PropertyResult<Type>::kValue) }; }; } // namespace Kernel |
