func New[T any](values ...T) *Queue[T] {
	Queue := Queue[T]{make([]T, 0, len(values))}
	Queue.Enqueue(values...)
	return &Queue
}
// New factory to generate new Queues
New factory to generate new Queues
// New factory to generate new Queues
func New[T any](values ...T) *Queue[T] {
	Queue := Queue[T]{make([]T, 0, len(values))}
	Queue.Enqueue(values...)
	return &Queue
}
func New [ T any ] ( values ... T ) * Queue [ T ] { Queue := Queue [ T ] { make ( [ ] T , 0 , len ( values ) ) } Queue . Enqueue ( values ... ) return & Queue }
New factory to generate new Queues
New factory to generate new Queues