From cbe5ed37c70fa88cb11d2716a3e9e1a40511b9db Mon Sep 17 00:00:00 2001 From: Nitr4m12 <67806925+Nitr4m12@users.noreply.github.com> Date: Mon, 10 Aug 2026 15:26:02 -0400 Subject: [PATCH] util: Add `IntrusiveListBaseNode` and traits --- include/nn/util/util_IntrusiveList.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/include/nn/util/util_IntrusiveList.h b/include/nn/util/util_IntrusiveList.h index 319f43a8..4e75cf7f 100644 --- a/include/nn/util/util_IntrusiveList.h +++ b/include/nn/util/util_IntrusiveList.h @@ -338,6 +338,30 @@ class IntrusiveList { detail::IntrusiveListImplementation m_Implementation; }; +template +class IntrusiveListBaseNode : public IntrusiveListNode { +public: + IntrusiveListBaseNode(); +}; + +template +class IntrusiveListBaseNodeTraits { +public: + using BaseNodeType = IntrusiveListBaseNode; + + static IntrusiveListNode& GetNode(T& ref) { return ref; } + + static const IntrusiveListNode& GetNode(const T& ref) { return ref; } + + static T& GetItem(IntrusiveListNode& node) { + return static_cast(node); + } + + static const T& GetItem(const IntrusiveListNode& node) { + return static_cast(node); + } +}; + template class IntrusiveListMemberNodeTraits { friend class IntrusiveList;