summaryrefslogtreecommitdiffhomepage
path: root/src/kernel/NeKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-12-15 17:22:51 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-12-15 17:24:59 +0100
commit79090c31b60c95dcabd4572031353c9e0f54fc67 (patch)
tree5d8c7ccedfb040ab28c4f855f438d73b593e8c74 /src/kernel/NeKit
parent0b11c0cdac02f67dba3c55b97269edba212906ed (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.h8
-rw-r--r--src/kernel/NeKit/Vettable.h4
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