raft-key-value-store / labs-fall23-AnurimaVaishnavi-master / assignment2 / src / chandy-lamport / queue.go
queue.go
Raw
package chandy_lamport

import "container/list"

// Define a queue -- simple implementation over List
type Queue struct {
	elements *list.List
}

func NewQueue() *Queue {
	return &Queue{list.New()}
}

func (q *Queue) Empty() bool {
	return (q.elements.Len() == 0)
}

func (q *Queue) Push(v interface{}) {
	q.elements.PushFront(v)
}

func (q *Queue) Pop() interface{} {
	return q.elements.Remove(q.elements.Back())
}

func (q *Queue) Peek() interface{} {
	return q.elements.Back().Value
}