37 Error enqueueCluster(
Cluster& cluster, uint32_t priorityRating) {
38 this->push(std::pair(priorityRating, &cluster));
41 [[nodiscard]]
constexpr Cluster* front()
const {
return this->top().second; }
42 [[nodiscard]]
Cluster* getNext() {
44 while (!this->empty()) {
45 cluster = this->front();
47 if (cluster !=
nullptr) {
49 if ((!cluster->unloadable) && cluster->numReasonsToBeLoaded > 0) {
61 [[nodiscard]]
constexpr bool hasAnyLowestPriority()
const {
62 return !c.empty() && c.rbegin()->first == std::numeric_limits<uint32_t>::max();
65 bool erase(
const Cluster* cluster) {
66 for (
auto& val : this->c | std::views::values) {