From 73fa1d46dc88bb74626715b491fafd57591aeab8 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Sat, 29 Nov 2025 22:22:11 -0500 Subject: chore: API and System Design update. Signed-off-by: Amlal El Mahrouss --- src/kernel/NeKit/Vet.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/kernel/NeKit/Vet.h') diff --git a/src/kernel/NeKit/Vet.h b/src/kernel/NeKit/Vet.h index d4c1060f..86874085 100644 --- a/src/kernel/NeKit/Vet.h +++ b/src/kernel/NeKit/Vet.h @@ -13,13 +13,15 @@ #define NE_VETTABLE : public IVet namespace Kernel { +/// @brief Vet interface for objects. struct IVet { IVet() = default; virtual ~IVet() = default; NE_COPY_DEFAULT(IVet) - operator bool() = delete; + /// @brief Start vetting object for validity. + auto DoVet() const { return false; } }; template @@ -31,4 +33,10 @@ template <> struct Vettable final { static constexpr bool kValue = true; }; + +/// @brief Concept version of Vettable. +template +concept IVettable = requires(IVet vettable, Fallback fallback) { + { Vettable::kValue ? vettable.DoVet() : fallback(vettable) }; +}; } // namespace Kernel \ No newline at end of file -- cgit v1.2.3