package wazevoapi

// Queue is the resettable queue where the underlying slice is reused.
type Queue[ any] struct {
	index int
	Data  []
}

func ( *Queue[]) ( ) {
	.Data = append(.Data, )
}

func ( *Queue[]) () ( ) {
	 = .Data[.index]
	.index++
	return
}

func ( *Queue[]) () bool {
	return .index >= len(.Data)
}

func ( *Queue[]) () {
	.index = 0
	.Data = .Data[:0]
}