mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-03-05 02:02:06 +01:00
23 lines
674 B
Go
23 lines
674 B
Go
|
package wtdb
|
||
|
|
||
|
import "errors"
|
||
|
|
||
|
// ErrEmptyQueue is returned from Pop if there are no items left in the Queue.
|
||
|
var ErrEmptyQueue = errors.New("queue is empty")
|
||
|
|
||
|
// Queue is an interface describing a FIFO queue for any generic type T.
|
||
|
type Queue[T any] interface {
|
||
|
// Len returns the number of tasks in the queue.
|
||
|
Len() (uint64, error)
|
||
|
|
||
|
// Push pushes new T items to the tail of the queue.
|
||
|
Push(items ...T) error
|
||
|
|
||
|
// PopUpTo attempts to pop up to n items from the head of the queue. If
|
||
|
// no more items are in the queue then ErrEmptyQueue is returned.
|
||
|
PopUpTo(n int) ([]T, error)
|
||
|
|
||
|
// PushHead pushes new T items to the head of the queue.
|
||
|
PushHead(items ...T) error
|
||
|
}
|