Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ObjectPriorityFn ¶
ObjectCompareFn is the signature for any function that can compare the relative priorities of two client.Objects. Implementations MUST return true when the first argument is of higher priority than the second and MUST return false otherwise. Implementors of such functions may safely assume that neither argument can ever be nil.
type PriorityQueue ¶
type PriorityQueue interface { // Push adds a copy of the provided client.Object to the priority queue. // Returns true if the item was added to the queue, false if it already existed // Pushing of nil objects have no effect Push(client.Object) bool // Pop removes the highest priority client.Object from the priority queue and // returns it. Implementations MUST return nil if the priority queue is empty. Pop() client.Object // Peek returns the highest priority client.Object from the priority queue // without removing it. Peek() client.Object // Depth returns the depth of the PriorityQueue. Depth() int }
PriorityQueue is an interface for any priority queue containing runtime.Objects.
func NewPriorityQueue ¶
func NewPriorityQueue( higherFn ObjectPriorityFn, objects ...client.Object, ) (PriorityQueue, error)
NewPriorityQueue takes a function for comparing the relative priority of two client.Objects (which MUST return true when the first argument is of higher priority than the second and MUST return false otherwise) and, optionally, any number of client.Objects (which do NOT needs to be pre-ordered) and returns an implementation of the PriorityQueue interface that is safe for concurrent use by multiple goroutines. This function will also return an error if initialized with a nil comparison function or any nil runtime.Objects.