docs: refinements
[poolifier.git] / src / queue.ts
index 8b761c8ff82d5ca7c0c0a67b361188d1fda19dc5..e7c9dd11fc0332ccbba845e9bd663d4bc682c523 100644 (file)
@@ -6,18 +6,15 @@
  * @typeParam T - Type of queue items.
  */
 export class Queue<T> {
-  private items: T[]
-  private offset: number
-  public size: number
-  public maxSize: number
+  private items!: T[]
+  private offset!: number
+  /** The size of the queue. */
+  public size!: number
+  /** The maximum size of the queue. */
+  public maxSize!: number
 
   public constructor () {
-    this.items = []
-    /** The size of the queue. */
-    this.size = 0
-    this.offset = 0
-    /** The maximum size of the queue. */
-    this.maxSize = 0
+    this.clear()
   }
 
   /**
@@ -64,4 +61,14 @@ export class Queue<T> {
     }
     return this.items[this.offset]
   }
+
+  /**
+   * Clear the queue.
+   */
+  public clear (): void {
+    this.items = []
+    this.offset = 0
+    this.size = 0
+    this.maxSize = 0
+  }
 }