feat: expose pool information
[poolifier.git] / src / queue.ts
index 7682f65f952136743c1f81724a26e53264ac18ed..86b69051174672a92c158317f84beb1874cebf07 100644 (file)
@@ -9,11 +9,13 @@ export class Queue<T> {
   private items: Record<number, T>
   private head: number
   private tail: number
+  private max: number
 
   public constructor () {
     this.items = {}
     this.head = 0
     this.tail = 0
+    this.max = 0
   }
 
   /**
@@ -26,6 +28,16 @@ export class Queue<T> {
     return this.tail - this.head
   }
 
+  /**
+   * Get the maximum size of the queue.
+   *
+   * @returns The maximum size of the queue.
+   * @readonly
+   */
+  public get maxSize (): number {
+    return this.max
+  }
+
   /**
    * Enqueue an item.
    *
@@ -35,6 +47,7 @@ export class Queue<T> {
   public enqueue (item: T): number {
     this.items[this.tail] = item
     this.tail++
+    if (this.size > this.max) this.max = this.size
     return this.size
   }