1package example 2 3import "github.com/cheekybits/genny/generic" 4 5type Generic generic.Type 6 7// GenericQueue represents a queue of Generic types. 8type GenericQueue struct { 9 items []Generic 10} 11 12// NewGenericQueue makes a new empty Generic queue. 13func NewGenericQueue() *GenericQueue { 14 return &GenericQueue{items: make([]Generic, 0)} 15} 16 17// Enq adds an item to the queue. 18func (q *GenericQueue) Enq(obj Generic) *GenericQueue { 19 q.items = append(q.items, obj) 20 return q 21} 22 23// Deq removes and returns the next item in the queue. 24func (q *GenericQueue) Deq() Generic { 25 obj := q.items[0] 26 q.items = q.items[1:] 27 return obj 28} 29 30// Len gets the current number of Generic items in the queue. 31func (q *GenericQueue) Len() int { 32 return len(q.items) 33} 34