using System.Collections.Generic; namespace Svelto.DataStructures { /// /// The IPriorityQueue interface. This is mainly here for purists, and in case I decide to add more implementations later. /// For speed purposes, it is actually recommended that you *don't* access the priority queue through this interface, since the JIT can /// (theoretically?) optimize method calls from concrete-types slightly better. /// public interface IPriorityQueue : IEnumerable where T : PriorityQueueEntityView { void Remove(T entityView); void UpdatePriority(T entityView, double priority); void Enqueue(T entityView, double priority); T Dequeue(); T First { get; } int Count { get; } int MaxSize { get; } void Clear(); bool Contains(T entityView); } }