4#include <container/seadListImpl.h>
41 friend class TList<T>;
44static_assert(
sizeof(
TListNode<
int*>) == 0x10,
"sead::TListNode<T> size mismatch");
61 if (obj->mList !=
nullptr)
62 obj->mList->erase(obj);
76 if (obj->mList !=
nullptr)
90 return static_cast<TListNode<T>*>(ListImpl::nth(index));
116 ListImpl::sort(-
static_cast<s32>(offsetof(TListNode<T>, mData)),
reinterpret_cast<CompareCallbackImpl>(cmp));
123 ListImpl::mergeSort(-
static_cast<s32>(offsetof(TListNode<T>, mData)),
reinterpret_cast<CompareCallbackImpl>(cmp));
130 return static_cast<TListNode<T>*>(ListImpl::find(obj, -
static_cast<s32>(offsetof(TListNode<T>, mData)),
reinterpret_cast<CompareCallbackImpl>(cmp)));
137 ListImpl::uniq(-
static_cast<s32>(offsetof(TListNode<T>, mData)),
reinterpret_cast<CompareCallbackImpl>(cmp));
168 return it1.mPtr == it2.mPtr;
173 return it1.mPtr != it2.mPtr;
179 friend class constIterator;
214 return it1.mPtr == it2.mPtr;
219 return it1.mPtr != it2.mPtr;
255 return it1.mPtr == it2.mPtr;
260 return it1.mPtr != it2.mPtr;
291 friend class reverseConstIterator;
Definition seadListImpl.h:51
void pushBack(ListNode *n)
Definition seadListImpl.h:87
ListNode mStartEnd
Definition seadListImpl.h:146
void unsafeClear()
Definition seadListImpl.h:135
void erase(ListNode *n)
Definition seadListImpl.h:114
Definition seadListImpl.h:11
ListNode * prev() const
Definition seadListImpl.h:25
ListNode * next() const
Definition seadListImpl.h:24
Definition seadTList.h:13
void insertFront(TListNode< T > *n)
TListNode(T data)
Definition seadTList.h:22
TList< T > * mList
Definition seadTList.h:39
T mData
Definition seadTList.h:38
void insertBack(TListNode< T > *n)
TListNode()
Definition seadTList.h:15
void erase()
Definition seadTList.h:32
Definition seadTList.h:183
constIterator(const iterator &it)
Definition seadTList.h:190
const TListNode< T > * mPtr
Definition seadTList.h:223
friend bool operator!=(const constIterator &it1, const constIterator &it2)
Definition seadTList.h:217
friend bool operator==(const constIterator &it1, const constIterator &it2)
Definition seadTList.h:212
constIterator & operator++()
Definition seadTList.h:195
const T & operator*() const
Definition seadTList.h:202
const T * operator->() const
Definition seadTList.h:207
constIterator(const TListNode< T > *ptr)
Definition seadTList.h:185
Definition seadTList.h:142
iterator & operator++()
Definition seadTList.h:149
T & operator*() const
Definition seadTList.h:156
iterator(TListNode< T > *ptr)
Definition seadTList.h:144
friend bool operator!=(const iterator &it1, const iterator &it2)
Definition seadTList.h:171
T * operator->() const
Definition seadTList.h:161
friend bool operator==(const iterator &it1, const iterator &it2)
Definition seadTList.h:166
TListNode< T > * mPtr
Definition seadTList.h:177
Definition seadTList.h:295
const T * operator->() const
Definition seadTList.h:314
const TListNode< T > * mPtr
Definition seadTList.h:320
friend bool operator==(const reverseConstIterator &lhs, const reverseConstIterator &rhs)
Definition seadTList.h:316
friend bool operator!=(const reverseConstIterator &lhs, const reverseConstIterator &rhs)
Definition seadTList.h:317
reverseConstIterator(const TListNode< T > *ptr)
Definition seadTList.h:297
const T & operator*() const
Definition seadTList.h:313
reverseConstIterator(const reverseIterator &it)
Definition seadTList.h:302
reverseConstIterator & operator++()
Definition seadTList.h:307
Definition seadTList.h:269
TListNode< T > * mPtr
Definition seadTList.h:289
T & operator*() const
Definition seadTList.h:282
reverseIterator & operator++()
Definition seadTList.h:276
T * operator->() const
Definition seadTList.h:283
friend bool operator==(const reverseIterator &lhs, const reverseIterator &rhs)
Definition seadTList.h:285
friend bool operator!=(const reverseIterator &lhs, const reverseIterator &rhs)
Definition seadTList.h:286
reverseIterator(TListNode< T > *ptr)
Definition seadTList.h:271
Definition seadTList.h:324
reverseRobustIterator & operator++()
Definition seadTList.h:332
reverseRobustIterator(TListNode< T > *ptr)
Definition seadTList.h:326
TListNode< T > * operator->() const
Definition seadTList.h:340
friend bool operator==(const reverseRobustIterator &lhs, const reverseRobustIterator &rhs)
Definition seadTList.h:342
TListNode< T > * mPrev
Definition seadTList.h:347
TListNode< T > & operator*() const
Definition seadTList.h:339
TListNode< T > * mPtr
Definition seadTList.h:346
friend bool operator!=(const reverseRobustIterator &lhs, const reverseRobustIterator &rhs)
Definition seadTList.h:343
Definition seadTList.h:227
robustIterator & operator++()
Definition seadTList.h:235
friend bool operator==(const robustIterator &it1, const robustIterator &it2)
Definition seadTList.h:253
TListNode< T > * operator->() const
Definition seadTList.h:248
TListNode< T > * mPtr
Definition seadTList.h:264
friend bool operator!=(const robustIterator &it1, const robustIterator &it2)
Definition seadTList.h:258
TListNode< T > & operator*() const
Definition seadTList.h:243
TListNode< T > * mNext
Definition seadTList.h:265
robustIterator(TListNode< T > *ptr)
Definition seadTList.h:229
Definition seadTList.h:49
void pushBack(TListNode< T > *obj)
Definition seadTList.h:59
void uniq(CompareCallback cmp)
Definition seadTList.h:135
void sort(CompareCallback cmp)
Definition seadTList.h:114
iterator begin() const
Definition seadTList.h:351
void insertAfter(TListNode< T > *basis, TListNode< T > *obj)
reverseRobustIterator toReverseRobustIterator(TListNode< T > *obj) const
Definition seadTList.h:373
TListNode< T > * find(const T *obj, CompareCallback cmp) const
Definition seadTList.h:128
s32 indexOf(const TListNode< T > *obj) const
TListNode< T > * front() const
TListNode< T > * prev(const TListNode< T > *obj) const
reverseIterator reverseEnd() const
Definition seadTList.h:364
static s32 compareT(const T *a, const T *b)
Definition seadTList.h:376
robustIterator robustBegin() const
Definition seadTList.h:359
TListNode< T > * back() const
void uniq()
Definition seadTList.h:133
reverseRobustIterator reverseRobustBegin() const
Definition seadTList.h:371
TListNode< T > * popFront()
void moveBefore(TListNode< T > *basis, TListNode< T > *obj)
TListNode< T > * find(const T *obj) const
Definition seadTList.h:126
void insertBefore(TListNode< T > *basis, TListNode< T > *obj)
void unsafeClear()
Definition seadTList.h:110
void pushFront(TListNode< T > *obj)
reverseConstIterator reverseConstBegin() const
Definition seadTList.h:367
iterator toIterator(TListNode< T > *obj) const
Definition seadTList.h:353
robustIterator toRobustIterator(TListNode< T > *obj) const
Definition seadTList.h:361
TListNode< T > * next(const TListNode< T > *obj) const
reverseIterator reverseBegin() const
Definition seadTList.h:363
void mergeSort()
Definition seadTList.h:119
void swap(TListNode< T > *obj1, TListNode< T > *obj2)
constIterator constEnd() const
Definition seadTList.h:356
bool isNodeLinked(const TListNode< T > *obj) const
reverseIterator toReverseIterator(TListNode< T > *obj) const
Definition seadTList.h:365
iterator end() const
Definition seadTList.h:352
reverseConstIterator reverseConstEnd() const
Definition seadTList.h:368
TListNode< T > * popBack()
robustIterator robustEnd() const
Definition seadTList.h:360
void erase(TListNode< T > *obj)
Definition seadTList.h:74
reverseRobustIterator reverseRobustEnd() const
Definition seadTList.h:372
TList()
Definition seadTList.h:54
reverseConstIterator toReverseConstIterator(const TListNode< T > *obj) const
Definition seadTList.h:369
constIterator toConstIterator(const TListNode< T > *obj) const
Definition seadTList.h:357
void mergeSort(CompareCallback cmp)
Definition seadTList.h:121
constIterator constBegin() const
Definition seadTList.h:355
void clear()
Definition seadTList.h:99
TListNode< T > * nth(s32 index) const
Definition seadTList.h:88
void sort()
Definition seadTList.h:112
void moveAfter(TListNode< T > *basis, TListNode< T > *obj)
Definition seadAssert.h:44