diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2023-12-23 11:33:55 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2023-12-23 11:33:55 -0500 |
| commit | a527dd1b773f14df140d3ac6a167339d7dc39e33 (patch) | |
| tree | 4da92bf0e54a5f43bff499fdd2dae156ab35f885 /src/array.hpp | |
| parent | 365eb04eebf4e5fc6d1d47d55cd541eedb47f64c (diff) | |
FindFirstIndex for DynArray and PkeArray
Diffstat (limited to 'src/array.hpp')
| -rw-r--r-- | src/array.hpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/array.hpp b/src/array.hpp index 1fd6266..db8c564 100644 --- a/src/array.hpp +++ b/src/array.hpp @@ -50,5 +50,15 @@ inline void PkeArray_Add(PkeArray_Base *arrIn, const D &val, MemBucket *bkt = nu arr->data[arr->next++] = val; } +template<typename D, typename F = bool(const D&)> +inline uint32_t PkeArray_FindFirstIndex(PkeArray_Base *arrIn, F fn) { + auto *arr = static_cast<PkeArray<D> *>(arrIn); + for (uint32_t i = 0; i < arr->next; ++i) { + if (fn(arr->data[i])) { + return i; + } + } + return -1; +} #endif /* PKE_ARRAY_HPP */ |
