# Functions
GetLargestNItems get N highest priority items.
GetSmallestNItems get N smallest priority items.
GetTopKItems calculate topN by heap
Arg isHighest: - use min-heap to calculates topN Highest items.
NewDeque new deque.
NewFIFO create a new FIFO queue.
NewLimitSizeHeap create new LimitSizeHeap.
NewSkiplist new skiplist
https://github.com/sean-public/fast-skiplist.
WithDequeCurrentCapacity preallocate memory for deque.
WithDequeMinimalCapacity set deque minimal capacity.
# Structs
FIFO is a lock-free First-In-First-Out queue
paper: https://1drv.ms/b/s!Au45o0W1gVVLuNxYkPzfBo4fOssFPQ?e=TYxHKl.
# Interfaces
Deque
https://pkg.go.dev/github.com/gammazero/deque#Deque.
HeapItemItf items need to sort
T is the type of priority.
LimitSizeHeap heap that with limited size.
# Type aliases
DequeOptFunc optional arguments for deque.
HeapSlice slice that could be used by heap.