package queue

type QueueInterface interface {
    enqueue(int)
    dequeue() int
}

type Queue[T any] []T

func (q Queue[T]) Enqueue(v T) {
    q = append(q, v)
}

func (q Queue[T]) Dequeue() T {
    x := q[0]
    q = q[1:]
    return x
}

func (q Queue[T]) IsEmpty() bool {
    if len(q) == 0 {
        return true
    }
    return false;
}