summaryrefslogtreecommitdiffhomepage
path: root/src/kernel/NeKit/Vettable.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-12-15 11:22:55 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-12-15 11:25:36 +0100
commit6b4d761818b79a6fc17607e15d939154b4d8314f (patch)
tree0a6188f201afebc4b5a22bae9f0744d7be7495f1 /src/kernel/NeKit/Vettable.h
parentcceb0a70efef009b87198796eb9016ffb82c7130 (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.h13
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