repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
chore: v2.5.2
[poolifier.git]
/
src
/
queue.ts
diff --git
a/src/queue.ts
b/src/queue.ts
index ab606547b1f77fb08ab6b203e0053ad182b481e6..86b69051174672a92c158317f84beb1874cebf07 100644
(file)
--- a/
src/queue.ts
+++ b/
src/queue.ts
@@
-9,11
+9,13
@@
export class Queue<T> {
private items: Record<number, T>
private head: number
private tail: number
private items: Record<number, T>
private head: number
private tail: number
+ private max: number
public constructor () {
this.items = {}
this.head = 0
this.tail = 0
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
}
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.
*
/**
* Enqueue an item.
*
@@
-35,6
+47,7
@@
export class Queue<T> {
public enqueue (item: T): number {
this.items[this.tail] = item
this.tail++
public enqueue (item: T): number {
this.items[this.tail] = item
this.tail++
+ if (this.size > this.max) this.max = this.size
return this.size
}
return this.size
}
@@
-55,4
+68,12
@@
export class Queue<T> {
}
return item
}
}
return item
}
+
+ /**
+ * Peek at the first item.
+ */
+ public peek (): T | undefined {
+ if (this.size <= 0) return undefined
+ return this.items[this.head]
+ }
}
}