diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-15 11:22:55 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-15 11:25:36 +0100 |
| commit | 6b4d761818b79a6fc17607e15d939154b4d8314f (patch) | |
| tree | 0a6188f201afebc4b5a22bae9f0744d7be7495f1 /src/kernel/NeKit/Vettable.h | |
| parent | cceb0a70efef009b87198796eb9016ffb82c7130 (diff) | |
feat: New Nullable system, and improved Vettable system.
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 | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/kernel/NeKit/Vettable.h b/src/kernel/NeKit/Vettable.h index 04d51b1d..c8c27fe3 100644 --- a/src/kernel/NeKit/Vettable.h +++ b/src/kernel/NeKit/Vettable.h @@ -40,15 +40,12 @@ struct Vettable<IVettable> final { static constexpr bool kValue = true; }; -/// @brief Concept version of Vettable. -template <typename Type, typename OnFallback> -concept IsVettable = requires(OnFallback fallback) { - { Vettable<Type>::kValue ? TrueResult<Type>::kValue : fallback() }; -}; +using FallbackType = bool (*)(bool); -template <class Type, typename OnFallback> -concept IsNotVettable = requires(OnFallback fallback) { - { !Vettable<Type>::kValue ? TrueResult<Type>::kValue : fallback() }; +/// @brief Concept version of Vettable. +template <typename Type, FallbackType OnFallback> +concept IsVettable = requires() { + { Vettable<Type>::kValue ? TrueResult<Type>::kValue : OnFallback(FalseResult<Type>::kValue) }; }; } // namespace Kernel |
