PriorityOrdered constructor

const PriorityOrdered()

A special marker interface for Ordered objects that should be given priority over other Ordered objects during sorting or processing.

This is typically used in systems where certain components (e.g., filters, interceptors, processors) must be initialized or invoked before others, even if they all implement Ordered.


⚙️ Priority Semantics

  • PriorityOrdered pods are always sorted and processed before regular Ordered pods.
  • Within each group (priority vs non-priority), ordering is still determined by the order value.

📌 Example

class CoreFilter implements PriorityOrdered {
  @override
  int get order => 0;
}

class CustomFilter implements Ordered {
  @override
  int get order => 0;
}

final filters = [CustomFilter(), CoreFilter()];
filters.sort((a, b) {
  final aPriority = a is PriorityOrdered ? -1 : 0;
  final bPriority = b is PriorityOrdered ? -1 : 0;
  return aPriority.compareTo(bPriority) != 0
      ? aPriority.compareTo(bPriority)
      : a.order.compareTo(b.order);
});

Implementation

const PriorityOrdered();