@blackglory/structures 0.14.15 → 0.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +681 -99
- package/lib/async-generator-emitter.js +2 -5
- package/lib/async-generator-emitter.js.map +1 -1
- package/lib/big-map.js +1 -3
- package/lib/big-map.js.map +1 -1
- package/lib/big-set.js +1 -3
- package/lib/big-set.js.map +1 -1
- package/lib/{bit-set.d.ts → bit-set/bit-set.d.ts} +5 -2
- package/lib/{bit-set.js → bit-set/bit-set.js} +43 -34
- package/lib/bit-set/bit-set.js.map +1 -0
- package/lib/{typed-bit-set.d.ts → bit-set/dynamic-typed-bit-set.d.ts} +6 -4
- package/lib/bit-set/dynamic-typed-bit-set.js +95 -0
- package/lib/bit-set/dynamic-typed-bit-set.js.map +1 -0
- package/lib/bit-set/index.d.ts +4 -0
- package/lib/bit-set/index.js +5 -0
- package/lib/bit-set/index.js.map +1 -0
- package/lib/bit-set/resizable-typed-bit-set.d.ts +22 -0
- package/lib/{typed-bit-set.js → bit-set/resizable-typed-bit-set.js} +37 -39
- package/lib/bit-set/resizable-typed-bit-set.js.map +1 -0
- package/lib/bit-set/typed-bit-set.d.ts +22 -0
- package/lib/bit-set/typed-bit-set.js +99 -0
- package/lib/bit-set/typed-bit-set.js.map +1 -0
- package/lib/box.js +1 -0
- package/lib/box.js.map +1 -1
- package/lib/disjoint-set.js +2 -4
- package/lib/disjoint-set.js.map +1 -1
- package/lib/dynamic-typed-array.d.ts +12 -9
- package/lib/dynamic-typed-array.js +51 -66
- package/lib/dynamic-typed-array.js.map +1 -1
- package/lib/emitter.js +3 -7
- package/lib/emitter.js.map +1 -1
- package/lib/expirable-map.js +9 -15
- package/lib/expirable-map.js.map +1 -1
- package/lib/generator-emitter.js +2 -5
- package/lib/generator-emitter.js.map +1 -1
- package/lib/hash-map.js +2 -1
- package/lib/hash-map.js.map +1 -1
- package/lib/hash-set.js +2 -1
- package/lib/hash-set.js.map +1 -1
- package/lib/index.d.ts +6 -7
- package/lib/index.js +6 -7
- package/lib/index.js.map +1 -1
- package/lib/lru-map.js +2 -1
- package/lib/lru-map.js.map +1 -1
- package/lib/queue.js +1 -3
- package/lib/queue.js.map +1 -1
- package/lib/radix-tree.js +3 -4
- package/lib/radix-tree.js.map +1 -1
- package/lib/resizable-typed-array.d.ts +32 -0
- package/lib/resizable-typed-array.js +127 -0
- package/lib/resizable-typed-array.js.map +1 -0
- package/lib/sorted-set.js +2 -1
- package/lib/sorted-set.js.map +1 -1
- package/lib/sparse-map/clean-sparse-map.d.ts +18 -0
- package/lib/sparse-map/clean-sparse-map.js +74 -0
- package/lib/sparse-map/clean-sparse-map.js.map +1 -0
- package/lib/sparse-map/dynamic-typed-clean-sparse-map-lite.d.ts +21 -0
- package/lib/sparse-map/dynamic-typed-clean-sparse-map-lite.js +87 -0
- package/lib/sparse-map/dynamic-typed-clean-sparse-map-lite.js.map +1 -0
- package/lib/sparse-map/dynamic-typed-sparse-map-lite.d.ts +21 -0
- package/lib/sparse-map/dynamic-typed-sparse-map-lite.js +94 -0
- package/lib/sparse-map/dynamic-typed-sparse-map-lite.js.map +1 -0
- package/lib/sparse-map/index.d.ts +10 -0
- package/lib/sparse-map/index.js +11 -0
- package/lib/sparse-map/index.js.map +1 -0
- package/lib/sparse-map/resizable-typed-clean-sparse-map-lite.d.ts +21 -0
- package/lib/sparse-map/resizable-typed-clean-sparse-map-lite.js +85 -0
- package/lib/sparse-map/resizable-typed-clean-sparse-map-lite.js.map +1 -0
- package/lib/sparse-map/resizable-typed-sparse-map-lite.d.ts +21 -0
- package/lib/sparse-map/resizable-typed-sparse-map-lite.js +92 -0
- package/lib/sparse-map/resizable-typed-sparse-map-lite.js.map +1 -0
- package/lib/{sparse-map.d.ts → sparse-map/sparse-map.d.ts} +6 -5
- package/lib/sparse-map/sparse-map.js +86 -0
- package/lib/sparse-map/sparse-map.js.map +1 -0
- package/lib/sparse-map/typed-clean-sparse-map-lite.d.ts +21 -0
- package/lib/sparse-map/typed-clean-sparse-map-lite.js +92 -0
- package/lib/sparse-map/typed-clean-sparse-map-lite.js.map +1 -0
- package/lib/sparse-map/typed-clean-sparse-map.d.ts +22 -0
- package/lib/sparse-map/typed-clean-sparse-map.js +117 -0
- package/lib/sparse-map/typed-clean-sparse-map.js.map +1 -0
- package/lib/sparse-map/typed-sparse-map-lite.d.ts +21 -0
- package/lib/sparse-map/typed-sparse-map-lite.js +109 -0
- package/lib/sparse-map/typed-sparse-map-lite.js.map +1 -0
- package/lib/sparse-map/typed-sparse-map.d.ts +21 -0
- package/lib/sparse-map/typed-sparse-map.js +130 -0
- package/lib/sparse-map/typed-sparse-map.js.map +1 -0
- package/lib/sparse-set/clean-sparse-set.d.ts +13 -0
- package/lib/sparse-set/clean-sparse-set.js +57 -0
- package/lib/sparse-set/clean-sparse-set.js.map +1 -0
- package/lib/{typed-sparse-set.d.ts → sparse-set/dynamic-typed-clean-sparse-set-lite.d.ts} +6 -6
- package/lib/sparse-set/dynamic-typed-clean-sparse-set-lite.js +51 -0
- package/lib/sparse-set/dynamic-typed-clean-sparse-set-lite.js.map +1 -0
- package/lib/sparse-set/dynamic-typed-clean-sparse-set.d.ts +16 -0
- package/lib/sparse-set/dynamic-typed-clean-sparse-set.js +82 -0
- package/lib/sparse-set/dynamic-typed-clean-sparse-set.js.map +1 -0
- package/lib/sparse-set/dynamic-typed-sparse-set-lite.d.ts +15 -0
- package/lib/sparse-set/dynamic-typed-sparse-set-lite.js +52 -0
- package/lib/sparse-set/dynamic-typed-sparse-set-lite.js.map +1 -0
- package/lib/sparse-set/dynamic-typed-sparse-set.d.ts +15 -0
- package/lib/sparse-set/dynamic-typed-sparse-set.js +75 -0
- package/lib/sparse-set/dynamic-typed-sparse-set.js.map +1 -0
- package/lib/sparse-set/index.d.ts +14 -0
- package/lib/sparse-set/index.js +15 -0
- package/lib/sparse-set/index.js.map +1 -0
- package/lib/sparse-set/resizable-typed-clean-sparse-set-lite.d.ts +15 -0
- package/lib/sparse-set/resizable-typed-clean-sparse-set-lite.js +51 -0
- package/lib/sparse-set/resizable-typed-clean-sparse-set-lite.js.map +1 -0
- package/lib/sparse-set/resizable-typed-clean-sparse-set.d.ts +16 -0
- package/lib/sparse-set/resizable-typed-clean-sparse-set.js +83 -0
- package/lib/sparse-set/resizable-typed-clean-sparse-set.js.map +1 -0
- package/lib/sparse-set/resizable-typed-sparse-set-lite.d.ts +15 -0
- package/lib/sparse-set/resizable-typed-sparse-set-lite.js +52 -0
- package/lib/sparse-set/resizable-typed-sparse-set-lite.js.map +1 -0
- package/lib/sparse-set/resizable-typed-sparse-set.d.ts +15 -0
- package/lib/sparse-set/resizable-typed-sparse-set.js +76 -0
- package/lib/sparse-set/resizable-typed-sparse-set.js.map +1 -0
- package/lib/{sparse-set.d.ts → sparse-set/sparse-set.d.ts} +3 -4
- package/lib/sparse-set/sparse-set.js +60 -0
- package/lib/sparse-set/sparse-set.js.map +1 -0
- package/lib/sparse-set/typed-clean-sparse-set-lite.d.ts +15 -0
- package/lib/sparse-set/typed-clean-sparse-set-lite.js +55 -0
- package/lib/sparse-set/typed-clean-sparse-set-lite.js.map +1 -0
- package/lib/sparse-set/typed-clean-sparse-set.d.ts +16 -0
- package/lib/sparse-set/typed-clean-sparse-set.js +80 -0
- package/lib/sparse-set/typed-clean-sparse-set.js.map +1 -0
- package/lib/sparse-set/typed-sparse-set-lite.d.ts +15 -0
- package/lib/sparse-set/typed-sparse-set-lite.js +60 -0
- package/lib/sparse-set/typed-sparse-set-lite.js.map +1 -0
- package/lib/sparse-set/typed-sparse-set.d.ts +15 -0
- package/lib/sparse-set/typed-sparse-set.js +81 -0
- package/lib/sparse-set/typed-sparse-set.js.map +1 -0
- package/lib/string-radix-tree.js +3 -4
- package/lib/string-radix-tree.js.map +1 -1
- package/lib/string-trie-map.js +3 -4
- package/lib/string-trie-map.js.map +1 -1
- package/lib/tlru-map.js +6 -6
- package/lib/tlru-map.js.map +1 -1
- package/lib/trie-map.js +3 -4
- package/lib/trie-map.js.map +1 -1
- package/lib/typed-array.d.ts +3 -0
- package/lib/typed-array.js +13 -0
- package/lib/typed-array.js.map +1 -0
- package/lib/unique-queue.js +1 -3
- package/lib/unique-queue.js.map +1 -1
- package/lib/utils/compute-new-capacity.d.ts +1 -0
- package/lib/utils/compute-new-capacity.js +36 -0
- package/lib/utils/compute-new-capacity.js.map +1 -0
- package/lib/utils/skip-list.js +11 -9
- package/lib/utils/skip-list.js.map +1 -1
- package/lib/utils/trailing-zeros.js +1 -1
- package/lib/utils/trailing-zeros.js.map +1 -1
- package/package.json +28 -31
- package/src/{bit-set.ts → bit-set/bit-set.ts} +47 -31
- package/src/bit-set/dynamic-typed-bit-set.ts +131 -0
- package/src/bit-set/index.ts +4 -0
- package/src/{typed-bit-set.ts → bit-set/resizable-typed-bit-set.ts} +38 -36
- package/src/bit-set/typed-bit-set.ts +134 -0
- package/src/dynamic-typed-array.ts +67 -82
- package/src/index.ts +6 -7
- package/src/resizable-typed-array.ts +214 -0
- package/src/sparse-map/clean-sparse-map.ts +84 -0
- package/src/sparse-map/dynamic-typed-clean-sparse-map-lite.ts +109 -0
- package/src/sparse-map/dynamic-typed-sparse-map-lite.ts +124 -0
- package/src/sparse-map/index.ts +11 -0
- package/src/sparse-map/resizable-typed-clean-sparse-map-lite.ts +107 -0
- package/src/sparse-map/resizable-typed-sparse-map-lite.ts +122 -0
- package/src/sparse-map/sparse-map.ts +104 -0
- package/src/sparse-map/typed-clean-sparse-map-lite.ts +116 -0
- package/src/sparse-map/typed-clean-sparse-map.ts +149 -0
- package/src/sparse-map/typed-sparse-map-lite.ts +141 -0
- package/src/sparse-map/typed-sparse-map.ts +169 -0
- package/src/sparse-set/clean-sparse-set.ts +76 -0
- package/src/sparse-set/dynamic-typed-clean-sparse-set-lite.ts +64 -0
- package/src/sparse-set/dynamic-typed-clean-sparse-set.ts +101 -0
- package/src/sparse-set/dynamic-typed-sparse-set-lite.ts +67 -0
- package/src/sparse-set/dynamic-typed-sparse-set.ts +93 -0
- package/src/sparse-set/index.ts +15 -0
- package/src/sparse-set/resizable-typed-clean-sparse-set-lite.ts +64 -0
- package/src/sparse-set/resizable-typed-clean-sparse-set.ts +108 -0
- package/src/sparse-set/resizable-typed-sparse-set-lite.ts +67 -0
- package/src/sparse-set/resizable-typed-sparse-set.ts +97 -0
- package/src/sparse-set/sparse-set.ts +79 -0
- package/src/sparse-set/typed-clean-sparse-set-lite.ts +67 -0
- package/src/sparse-set/typed-clean-sparse-set.ts +100 -0
- package/src/sparse-set/typed-sparse-set-lite.ts +74 -0
- package/src/sparse-set/typed-sparse-set.ts +102 -0
- package/src/typed-array.ts +19 -0
- package/src/utils/compute-new-capacity.ts +39 -0
- package/src/utils/skip-list.ts +1 -1
- package/src/utils/trailing-zeros.ts +2 -3
- package/lib/bit-set.js.map +0 -1
- package/lib/sparse-map.js +0 -76
- package/lib/sparse-map.js.map +0 -1
- package/lib/sparse-set.js +0 -63
- package/lib/sparse-set.js.map +0 -1
- package/lib/typed-bit-set.js.map +0 -1
- package/lib/typed-sparse-map.d.ts +0 -20
- package/lib/typed-sparse-map.js +0 -83
- package/lib/typed-sparse-map.js.map +0 -1
- package/lib/typed-sparse-set.js +0 -59
- package/lib/typed-sparse-set.js.map +0 -1
- package/src/sparse-map.ts +0 -82
- package/src/sparse-set.ts +0 -74
- package/src/typed-sparse-map.ts +0 -97
- package/src/typed-sparse-set.ts +0 -73
package/README.md
CHANGED
|
@@ -58,6 +58,19 @@ function truncateArrayRight(arr: unknown[], num: number): void
|
|
|
58
58
|
function clearArray(arr: unknown[]): void
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
+
### TypedArray
|
|
62
|
+
#### getMaxValueOfUnsignedTypedArray
|
|
63
|
+
```ts
|
|
64
|
+
function getMaxValueOfUnsignedTypedArray(array: UnsignedTypedArray): number
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
#### getMaxValueOfUnsignedTypedArrayConstructor
|
|
68
|
+
```ts
|
|
69
|
+
function getMaxValueOfUnsignedTypedArrayConstructor(
|
|
70
|
+
constructor: UnsignedTypedArrayConstructor
|
|
71
|
+
): number
|
|
72
|
+
```
|
|
73
|
+
|
|
61
74
|
### Emitter
|
|
62
75
|
```ts
|
|
63
76
|
type Listener<Args extends unknown[]> = (...args: Args) => void
|
|
@@ -248,7 +261,6 @@ class HashMap<K, V, Hash = unknown> {
|
|
|
248
261
|
class HashSet<V, Hash = unknown> implements Iterable<V> {
|
|
249
262
|
get [Symbol.toStringTag](): string
|
|
250
263
|
get size(): number
|
|
251
|
-
[Symbol.iterator](): IterableIterator<V>
|
|
252
264
|
|
|
253
265
|
constructor(hash: (value: V) => Hash)
|
|
254
266
|
|
|
@@ -416,202 +428,772 @@ class StringRadixTree<T> {
|
|
|
416
428
|
Note that you might expect this data structure to be more space efficient than `BigMap`, but it doesn't.
|
|
417
429
|
In V8, it can only store about 80% of data of `BigMap`.
|
|
418
430
|
|
|
419
|
-
###
|
|
431
|
+
### DynamicTypedArray
|
|
420
432
|
```ts
|
|
421
|
-
class
|
|
433
|
+
class DynamicTypedArray<
|
|
434
|
+
T extends TypedArrayConstructor
|
|
435
|
+
> implements Iterable<number> {
|
|
436
|
+
get [Symbol.toStringTag](): string
|
|
437
|
+
get capacity(): number
|
|
438
|
+
get length(): number
|
|
439
|
+
readonly BYTES_PER_ELEMENT: number
|
|
440
|
+
readonly growthFactor: number
|
|
441
|
+
|
|
442
|
+
/**
|
|
443
|
+
* `DynamicTypedArray` cannot respond to any operations on the internal array,
|
|
444
|
+
* you must ensure that indexes accessed are less than the length of `DynamicTypedArray`.
|
|
445
|
+
*/
|
|
446
|
+
get internalTypedArray(): TypedArrayOfConstructor<T>
|
|
447
|
+
|
|
448
|
+
constructor(
|
|
449
|
+
typedArrayConstructor: T
|
|
450
|
+
, options?: {
|
|
451
|
+
initialCapacity?: number = 0
|
|
452
|
+
growthFactor?: number = 1.5
|
|
453
|
+
fillValue?: number = 0
|
|
454
|
+
}
|
|
455
|
+
)
|
|
456
|
+
|
|
457
|
+
values(): IterableIterator<number>
|
|
458
|
+
|
|
459
|
+
set(index: number, value: number): void
|
|
460
|
+
setValues(index: number, values: ArrayLike<number>): void
|
|
461
|
+
|
|
462
|
+
get(index: number): number | undefined
|
|
463
|
+
|
|
464
|
+
push(...values: number[]): void
|
|
465
|
+
pop(): number | undefined
|
|
466
|
+
|
|
467
|
+
clear(): void
|
|
468
|
+
shrink(): void
|
|
469
|
+
|
|
470
|
+
sort(compare?: (a: number, b: number) => number): void
|
|
471
|
+
}
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
This implementation applies to versions prior to ES2024,
|
|
475
|
+
you might prefer using `ResizableTypedArray`.
|
|
476
|
+
|
|
477
|
+
### ResizableTypedArray
|
|
478
|
+
```ts
|
|
479
|
+
class ResizableTypedArray<T extends TypedArrayConstructor> {
|
|
480
|
+
readonly maxCapacity: number
|
|
481
|
+
readonly growthFactor: number
|
|
482
|
+
readonly BYTES_PER_ELEMENT: number
|
|
483
|
+
readonly internalTypedArray: TypedArrayOfConstructor<T>
|
|
484
|
+
|
|
485
|
+
get [Symbol.toStringTag](): string
|
|
486
|
+
get capacity(): number
|
|
487
|
+
get length(): number
|
|
488
|
+
|
|
489
|
+
constructor(
|
|
490
|
+
typedArrayConstructor: T
|
|
491
|
+
, options: {
|
|
492
|
+
maxCapacity: number
|
|
493
|
+
|
|
494
|
+
initialCapacity?: capacity = 0
|
|
495
|
+
growthFactor?: number = 1.5
|
|
496
|
+
fillValue?: number = 0
|
|
497
|
+
}
|
|
498
|
+
)
|
|
499
|
+
|
|
500
|
+
set(index: number, value: number): void
|
|
501
|
+
setValues(index: number, values: ArrayLike<number>): void
|
|
502
|
+
|
|
503
|
+
get(index: number): number | undefined
|
|
504
|
+
|
|
505
|
+
push(...values: number[]): void
|
|
506
|
+
pop(): number | undefined
|
|
507
|
+
|
|
508
|
+
clear(): void
|
|
509
|
+
shrink(): void
|
|
510
|
+
|
|
511
|
+
sort(compare?: (a: number, b: number) => number): void
|
|
512
|
+
}
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
This implementation is based on Resizable Array Buffers,
|
|
516
|
+
support for which was introduced in ES2024.
|
|
517
|
+
|
|
518
|
+
### SortedSet
|
|
519
|
+
```ts
|
|
520
|
+
class SortedSet<T> implements Iterable<T> {
|
|
521
|
+
get [Symbol.toStringTag](): string
|
|
522
|
+
|
|
523
|
+
constructor(compare: (a: T, b: T) => number)
|
|
524
|
+
|
|
525
|
+
values(): IterableIterator<T>
|
|
526
|
+
|
|
527
|
+
has(value: T): boolean
|
|
528
|
+
add(value: T): void
|
|
529
|
+
delete(value: T): void
|
|
530
|
+
}
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
### DisjointSet
|
|
534
|
+
```ts
|
|
535
|
+
class DisjointSet {
|
|
536
|
+
has(value: number): boolean
|
|
537
|
+
sets(): number[][]
|
|
538
|
+
|
|
539
|
+
makeSet(value: number): number
|
|
540
|
+
union(a: number, b: number): void
|
|
541
|
+
find(value: number): number
|
|
542
|
+
}
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
### Bit Set
|
|
546
|
+
#### BitSet
|
|
547
|
+
```ts
|
|
548
|
+
class BitSet implements Iterable<number> {
|
|
422
549
|
get [Symbol.toStringTag](): string
|
|
423
|
-
get [Symbol.iterator](): IterableIterator<number>
|
|
424
550
|
get size(): number
|
|
425
551
|
|
|
426
|
-
constructor(
|
|
552
|
+
constructor(bitsPerElement: number = 8)
|
|
427
553
|
|
|
428
554
|
values(): IterableIterator<number>
|
|
429
555
|
|
|
430
556
|
has(value: number): boolean
|
|
431
|
-
add(value: number):
|
|
557
|
+
add(value: number): boolean
|
|
432
558
|
delete(value: number): boolean
|
|
559
|
+
|
|
433
560
|
clear(): void
|
|
434
561
|
|
|
435
|
-
clone():
|
|
562
|
+
clone(): BitSet
|
|
436
563
|
}
|
|
437
564
|
```
|
|
438
565
|
|
|
439
|
-
|
|
566
|
+
Due to the length of arrays supported by JavaScript,
|
|
567
|
+
`BitSet` cannot support very large values.
|
|
568
|
+
|
|
569
|
+
#### TypedBitSet
|
|
440
570
|
```ts
|
|
441
|
-
class
|
|
571
|
+
class TypedBitSet implements Iterable<number> {
|
|
442
572
|
get [Symbol.toStringTag](): string
|
|
573
|
+
get capacity(): number
|
|
443
574
|
get size(): number
|
|
444
575
|
|
|
445
|
-
|
|
446
|
-
* `SparseMap` cannot respond to any operations on the internal array,
|
|
447
|
-
* you must ensure that indexes accessed are less than the length of `SparseMap`.
|
|
448
|
-
*
|
|
449
|
-
* Keys do not correspond to indexes of the array.
|
|
450
|
-
*/
|
|
451
|
-
get internalArray(): T[]
|
|
576
|
+
constructor(array: UnsignedTypedArray)
|
|
452
577
|
|
|
453
|
-
|
|
454
|
-
keys(): IterableIterator<number>
|
|
455
|
-
values(): IterableIterator<T>
|
|
578
|
+
values(): IterableIterator<number>
|
|
456
579
|
|
|
457
|
-
|
|
580
|
+
has(value: number): boolean
|
|
581
|
+
add(value: number): boolean
|
|
582
|
+
delete(value: number): boolean
|
|
458
583
|
|
|
459
|
-
has(key: number): boolean
|
|
460
|
-
get(key: number): T | undefined
|
|
461
|
-
set(key: number, value: T): void
|
|
462
|
-
delete(key: number): void
|
|
463
584
|
clear(): void
|
|
464
585
|
}
|
|
465
586
|
```
|
|
466
587
|
|
|
467
|
-
|
|
588
|
+
#### DynamicTypedBitSet
|
|
468
589
|
```ts
|
|
469
|
-
class
|
|
590
|
+
class DynamicTypedBitSet implements Iterable<number> {
|
|
470
591
|
get [Symbol.toStringTag](): string
|
|
471
|
-
get BYTES_PER_ELEMENT(): number
|
|
472
592
|
get capacity(): number
|
|
473
|
-
get
|
|
474
|
-
readonly growthFactor: number
|
|
593
|
+
get size(): number
|
|
475
594
|
|
|
476
|
-
|
|
477
|
-
* `DynamicTypedArray` cannot respond to any operations on the internal array,
|
|
478
|
-
* you must ensure that indexes accessed are less than the length of `DynamicTypedArray`.
|
|
479
|
-
*/
|
|
480
|
-
get internalTypedArray(): TypedArrayOfConstructor<T>
|
|
595
|
+
constructor(array: array: DynamicTypedArray<UnsignedTypedArrayConstructor>)
|
|
481
596
|
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
}
|
|
488
|
-
)
|
|
597
|
+
values(): IterableIterator<number>
|
|
598
|
+
|
|
599
|
+
has(value: number): boolean
|
|
600
|
+
add(value: number): boolean
|
|
601
|
+
delete(value: number): boolean
|
|
489
602
|
|
|
490
|
-
set(index: number, value: number): void
|
|
491
|
-
setValues(index: number, values: TypedArrayOfConstructor<T>): void
|
|
492
|
-
get(index: number): number | undefined
|
|
493
|
-
push(...values: number[]): void
|
|
494
|
-
pop(): number | undefined
|
|
495
603
|
clear(): void
|
|
496
|
-
sort(compare?: (a: number, b: number) => number): void
|
|
497
604
|
}
|
|
498
605
|
```
|
|
499
606
|
|
|
500
|
-
|
|
607
|
+
Due to the length of arrays supported by JavaScript,
|
|
608
|
+
`DynamicTypedBitSit` cannot support very large values.
|
|
609
|
+
|
|
610
|
+
#### ResizableTypedBitSet
|
|
501
611
|
```ts
|
|
502
|
-
class
|
|
612
|
+
class ResizableTypedBitSet implements Iterable<number> {
|
|
503
613
|
get [Symbol.toStringTag](): string
|
|
504
|
-
get [Symbol.iterator](): IterableIterator<number>
|
|
505
614
|
get size(): number
|
|
506
615
|
|
|
507
|
-
constructor(array:
|
|
616
|
+
constructor(array: ResizableTypedArray<UnsignedTypedArrayConstructor>)
|
|
508
617
|
|
|
509
618
|
values(): IterableIterator<number>
|
|
510
619
|
|
|
511
620
|
has(value: number): boolean
|
|
512
|
-
add(value: number):
|
|
621
|
+
add(value: number): boolean
|
|
513
622
|
delete(value: number): boolean
|
|
623
|
+
|
|
514
624
|
clear(): void
|
|
515
625
|
}
|
|
516
626
|
```
|
|
517
627
|
|
|
518
|
-
|
|
628
|
+
Due to the length of arrays supported by JavaScript,
|
|
629
|
+
`ResizableTypedBitSit` cannot support very large values.
|
|
630
|
+
|
|
631
|
+
### Sparse Set
|
|
632
|
+
There are many implementations.
|
|
633
|
+
Based on benchmark results, `TypedCleanSparseSet` is the fastest,
|
|
634
|
+
followed by `TypedCleanSparseSetLite`.
|
|
635
|
+
If array resizing is required,
|
|
636
|
+
choose `DynamicTypedCleanSparseSetLite` or `ResizableTypedCleanSparseSetLite`.
|
|
637
|
+
|
|
638
|
+
#### SparseSet
|
|
519
639
|
```ts
|
|
520
|
-
class
|
|
640
|
+
class SparseSet implements Iterable<number> {
|
|
521
641
|
get [Symbol.toStringTag](): string
|
|
522
642
|
get size(): number
|
|
523
643
|
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
*/
|
|
530
|
-
get internalTypedArray(): TypedArrayOfConstructor<T>
|
|
644
|
+
values(): IterableIterator<number>
|
|
645
|
+
|
|
646
|
+
has(value: number): boolean
|
|
647
|
+
add(value: number): void
|
|
648
|
+
delete(value: number): boolean
|
|
531
649
|
|
|
532
|
-
|
|
650
|
+
clear(): void
|
|
651
|
+
|
|
652
|
+
clone(): SparseSet
|
|
653
|
+
}
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
#### CleanSparseSet
|
|
657
|
+
```ts
|
|
658
|
+
class CleanSparseSet implements Iterable<number> {
|
|
659
|
+
get [Symbol.toStringTag](): string
|
|
660
|
+
get size(): number
|
|
533
661
|
|
|
534
|
-
entries(): IterableIterator<[key: number, value: number]>
|
|
535
|
-
keys(): IterableIterator<number>
|
|
536
662
|
values(): IterableIterator<number>
|
|
537
663
|
|
|
538
|
-
|
|
664
|
+
has(value: number): boolean
|
|
665
|
+
add(value: number): void
|
|
666
|
+
delete(value: number): boolean
|
|
539
667
|
|
|
540
|
-
has(key: number): boolean
|
|
541
|
-
get(key: number): T | undefined
|
|
542
|
-
set(key: number, value: number): void
|
|
543
|
-
delete(key: number): void
|
|
544
668
|
clear(): void
|
|
669
|
+
|
|
670
|
+
clone(): CleanSparseSet
|
|
545
671
|
}
|
|
546
672
|
```
|
|
547
673
|
|
|
548
|
-
|
|
674
|
+
#### TypedSparseSet
|
|
549
675
|
```ts
|
|
550
|
-
class
|
|
676
|
+
class TypedSparseSet implements Iterable<number> {
|
|
551
677
|
get [Symbol.toStringTag](): string
|
|
552
|
-
|
|
678
|
+
get size(): number
|
|
553
679
|
|
|
554
|
-
constructor(
|
|
680
|
+
constructor(array: UnsignedTypedArray<ArrayBuffer>)
|
|
555
681
|
|
|
556
|
-
values(): IterableIterator<
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
682
|
+
values(): IterableIterator<number>
|
|
683
|
+
|
|
684
|
+
has(value: number): boolean
|
|
685
|
+
add(value: number): void
|
|
686
|
+
delete(value: number): boolean
|
|
687
|
+
|
|
688
|
+
clear(): void
|
|
560
689
|
}
|
|
561
690
|
```
|
|
562
691
|
|
|
563
|
-
|
|
692
|
+
#### TypedSparseSetLite
|
|
564
693
|
```ts
|
|
565
|
-
class
|
|
694
|
+
class TypedSparseSetLite implements Iterable<number> {
|
|
566
695
|
get [Symbol.toStringTag](): string
|
|
567
696
|
get size(): number
|
|
568
|
-
[Symbol.iterator](): IterableIterator<number>
|
|
569
697
|
|
|
570
|
-
constructor(
|
|
698
|
+
constructor(array: UnsignedTypedArray<ArrayBuffer>)
|
|
571
699
|
|
|
572
700
|
values(): IterableIterator<number>
|
|
573
701
|
|
|
574
702
|
has(value: number): boolean
|
|
575
|
-
add(value: number):
|
|
703
|
+
add(value: number): void
|
|
576
704
|
delete(value: number): boolean
|
|
577
|
-
clear(): void
|
|
578
705
|
|
|
579
|
-
|
|
706
|
+
clear(): void
|
|
580
707
|
}
|
|
581
708
|
```
|
|
582
709
|
|
|
583
|
-
|
|
584
|
-
|
|
710
|
+
#### TypedCleanSparseSet
|
|
711
|
+
```ts
|
|
712
|
+
class TypedCleanSparseSet implements Iterable<number> {
|
|
713
|
+
get [Symbol.toStringTag](): string
|
|
714
|
+
get size(): number
|
|
715
|
+
|
|
716
|
+
constructor(array: UnsignedTypedArray<ArrayBuffer>)
|
|
585
717
|
|
|
586
|
-
|
|
718
|
+
values(): IterableIterator<number>
|
|
719
|
+
|
|
720
|
+
has(value: number): boolean
|
|
721
|
+
add(value: number): void
|
|
722
|
+
delete(value: number): boolean
|
|
723
|
+
|
|
724
|
+
clear(): void
|
|
725
|
+
}
|
|
726
|
+
```
|
|
727
|
+
|
|
728
|
+
#### TypedCleanSparseSetLite
|
|
587
729
|
```ts
|
|
588
|
-
class
|
|
730
|
+
class TypedCleanSparseSetLite implements Iterable<number> {
|
|
589
731
|
get [Symbol.toStringTag](): string
|
|
590
732
|
get size(): number
|
|
591
|
-
[Symbol.iterator](): IterableIterator<number>
|
|
592
733
|
|
|
593
|
-
constructor(array:
|
|
734
|
+
constructor(array: UnsignedTypedArray<ArrayBuffer>)
|
|
594
735
|
|
|
595
736
|
values(): IterableIterator<number>
|
|
596
737
|
|
|
597
738
|
has(value: number): boolean
|
|
598
|
-
add(value: number):
|
|
739
|
+
add(value: number): void
|
|
599
740
|
delete(value: number): boolean
|
|
741
|
+
|
|
600
742
|
clear(): void
|
|
601
743
|
}
|
|
602
744
|
```
|
|
603
745
|
|
|
604
|
-
|
|
605
|
-
|
|
746
|
+
#### DynamicTypedSparseSet
|
|
747
|
+
```ts
|
|
748
|
+
class DynamicTypedSparseSet implements Iterable<number> {
|
|
749
|
+
get [Symbol.toStringTag](): string
|
|
750
|
+
get size(): number
|
|
606
751
|
|
|
607
|
-
|
|
752
|
+
constructor(array: DynamicTypedArray<UnsignedTypedArrayConstructor>)
|
|
753
|
+
|
|
754
|
+
values(): IterableIterator<number>
|
|
755
|
+
|
|
756
|
+
has(value: number): boolean
|
|
757
|
+
add(value: number): void
|
|
758
|
+
delete(value: number): boolean
|
|
759
|
+
|
|
760
|
+
clear(): void
|
|
761
|
+
}
|
|
762
|
+
```
|
|
763
|
+
|
|
764
|
+
#### DynamicTypedSparseSetLite
|
|
608
765
|
```ts
|
|
609
|
-
class
|
|
766
|
+
class DynamicTypedSparseSetLite implements Iterable<number> {
|
|
767
|
+
get [Symbol.toStringTag](): string
|
|
768
|
+
get size(): number
|
|
769
|
+
|
|
770
|
+
constructor(array: DynamicTypedArray<UnsignedTypedArrayConstructor>)
|
|
771
|
+
|
|
772
|
+
values(): IterableIterator<number>
|
|
773
|
+
|
|
610
774
|
has(value: number): boolean
|
|
611
|
-
|
|
775
|
+
add(value: number): void
|
|
776
|
+
delete(value: number): boolean
|
|
612
777
|
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
778
|
+
clear(): void
|
|
779
|
+
}
|
|
780
|
+
```
|
|
781
|
+
|
|
782
|
+
#### DynamicTypedCleanSparseSet
|
|
783
|
+
```ts
|
|
784
|
+
class DynamicTypedCleanSparseSet implements Iterable<number> {
|
|
785
|
+
get [Symbol.toStringTag](): string
|
|
786
|
+
get size(): number
|
|
787
|
+
|
|
788
|
+
constructor(array: DynamicTypedArray<UnsignedTypedArrayConstructor>)
|
|
789
|
+
|
|
790
|
+
values(): IterableIterator<number>
|
|
791
|
+
|
|
792
|
+
has(value: number): boolean
|
|
793
|
+
add(value: number): void
|
|
794
|
+
delete(value: number): boolean
|
|
795
|
+
|
|
796
|
+
clear(): void
|
|
797
|
+
}
|
|
798
|
+
```
|
|
799
|
+
|
|
800
|
+
#### DynamicTypedCleanSparseSetLite
|
|
801
|
+
```ts
|
|
802
|
+
class DynamicTypedCleanSparseSetLite implements Iterable<number> {
|
|
803
|
+
get [Symbol.toStringTag](): string
|
|
804
|
+
get size(): number
|
|
805
|
+
|
|
806
|
+
constructor(array: DynamicTypedArray<UnsignedTypedArrayConstructor>)
|
|
807
|
+
|
|
808
|
+
values(): IterableIterator<number>
|
|
809
|
+
|
|
810
|
+
has(value: number): boolean
|
|
811
|
+
add(value: number): void
|
|
812
|
+
delete(value: number): boolean
|
|
813
|
+
|
|
814
|
+
clear(): void
|
|
815
|
+
}
|
|
816
|
+
```
|
|
817
|
+
|
|
818
|
+
#### ResizableTypedSparseSet
|
|
819
|
+
```ts
|
|
820
|
+
class ResizableTypedSparseSet implements Iterable<number> {
|
|
821
|
+
get [Symbol.toStringTag](): string
|
|
822
|
+
get size(): number
|
|
823
|
+
|
|
824
|
+
constructor(array: ResizableTypedArray<UnsignedTypedArrayConstructor>)
|
|
825
|
+
|
|
826
|
+
values(): IterableIterator<number>
|
|
827
|
+
|
|
828
|
+
has(value: number): boolean
|
|
829
|
+
add(value: number): void
|
|
830
|
+
delete(value: number): boolean
|
|
831
|
+
|
|
832
|
+
clear(): void
|
|
833
|
+
}
|
|
834
|
+
```
|
|
835
|
+
|
|
836
|
+
#### ResizableTypedSparseSetLite
|
|
837
|
+
```ts
|
|
838
|
+
class ResizableTypedSparseSetLite implements Iterable<number> {
|
|
839
|
+
get [Symbol.toStringTag](): string
|
|
840
|
+
get size(): number
|
|
841
|
+
|
|
842
|
+
constructor(array: ResizableTypedArray<UnsignedTypedArrayConstructor>)
|
|
843
|
+
|
|
844
|
+
values(): IterableIterator<number>
|
|
845
|
+
|
|
846
|
+
has(value: number): boolean
|
|
847
|
+
add(value: number): void
|
|
848
|
+
delete(value: number): boolean
|
|
849
|
+
|
|
850
|
+
clear(): void
|
|
851
|
+
}
|
|
852
|
+
```
|
|
853
|
+
|
|
854
|
+
#### ResizableTypedCleanSparseSet
|
|
855
|
+
```ts
|
|
856
|
+
class ResizableTypedCleanSparseSet implements Iterable<number> {
|
|
857
|
+
get [Symbol.toStringTag](): string
|
|
858
|
+
get size(): number
|
|
859
|
+
|
|
860
|
+
constructor(array: ResizableTypedArray<UnsignedTypedArrayConstructor>)
|
|
861
|
+
|
|
862
|
+
values(): IterableIterator<number>
|
|
863
|
+
|
|
864
|
+
has(value: number): boolean
|
|
865
|
+
add(value: number): void
|
|
866
|
+
delete(value: number): boolean
|
|
867
|
+
|
|
868
|
+
clear(): void
|
|
869
|
+
}
|
|
870
|
+
```
|
|
871
|
+
|
|
872
|
+
#### ResizableTypedCleanSparseSetLite
|
|
873
|
+
```ts
|
|
874
|
+
class ResizableTypedCleanSparseSetLite implements Iterable<number> {
|
|
875
|
+
get [Symbol.toStringTag](): string
|
|
876
|
+
get size(): number
|
|
877
|
+
|
|
878
|
+
constructor(array: ResizableTypedArray<UnsignedTypedArrayConstructor>)
|
|
879
|
+
|
|
880
|
+
values(): IterableIterator<number>
|
|
881
|
+
|
|
882
|
+
has(value: number): boolean
|
|
883
|
+
add(value: number): void
|
|
884
|
+
delete(value: number): boolean
|
|
885
|
+
|
|
886
|
+
clear(): void
|
|
887
|
+
}
|
|
888
|
+
```
|
|
889
|
+
|
|
890
|
+
### Sparse Map
|
|
891
|
+
There are many implementations.
|
|
892
|
+
Based on benchmark results, `TypedCleanSparseMap` is the fastest,
|
|
893
|
+
followed by `TypedCleanSparseMapLite`.
|
|
894
|
+
If array resizing is required,
|
|
895
|
+
choose `DynamicTypedCleanSparseMapLite` or `ResizableTypedCleanSparseMapLite`.
|
|
896
|
+
|
|
897
|
+
#### SparseMap
|
|
898
|
+
```ts
|
|
899
|
+
class SparseMap<T> {
|
|
900
|
+
get [Symbol.toStringTag](): string
|
|
901
|
+
get size(): number
|
|
902
|
+
|
|
903
|
+
readonly internalKeyArray: readonly number[]
|
|
904
|
+
readonly internalValueArray: T[]
|
|
905
|
+
|
|
906
|
+
entries(): IterableIterator<[key: number, value: T]>
|
|
907
|
+
keys(): IterableIterator<number>
|
|
908
|
+
values(): IterableIterator<T>
|
|
909
|
+
|
|
910
|
+
getInternalIndexOfKey(key: number): number | undefined
|
|
911
|
+
|
|
912
|
+
has(key: number): boolean
|
|
913
|
+
get(key: number): T | undefined
|
|
914
|
+
set(key: number, value: T): void
|
|
915
|
+
delete(key: number): boolean
|
|
916
|
+
|
|
917
|
+
clear(): void
|
|
918
|
+
}
|
|
919
|
+
```
|
|
920
|
+
|
|
921
|
+
#### CleanSparseMap
|
|
922
|
+
```ts
|
|
923
|
+
class CleanSparseMap<T> {
|
|
924
|
+
get [Symbol.toStringTag](): string
|
|
925
|
+
get size(): number
|
|
926
|
+
|
|
927
|
+
readonly internalKeyArray: readonly number[]
|
|
928
|
+
readonly internalValueArray: T[]
|
|
929
|
+
|
|
930
|
+
entries(): IterableIterator<[key: number, value: T]>
|
|
931
|
+
keys(): IterableIterator<number>
|
|
932
|
+
values(): IterableIterator<T>
|
|
933
|
+
|
|
934
|
+
getInternalIndexOfKey(key: number): number | undefined
|
|
935
|
+
|
|
936
|
+
has(key: number): boolean
|
|
937
|
+
get(key: number): T | undefined
|
|
938
|
+
set(key: number, value: T): void
|
|
939
|
+
delete(key: number): boolean
|
|
940
|
+
|
|
941
|
+
clear(): void
|
|
942
|
+
}
|
|
943
|
+
```
|
|
944
|
+
|
|
945
|
+
#### TypedSparseMap
|
|
946
|
+
```ts
|
|
947
|
+
class TypedSparseMap<
|
|
948
|
+
K extends UnsignedTypedArrayConstructor
|
|
949
|
+
, V extends TypedArrayConstructor
|
|
950
|
+
> {
|
|
951
|
+
get [Symbol.toStringTag](): string
|
|
952
|
+
get size(): number
|
|
953
|
+
|
|
954
|
+
readonly internalKeyArray: TypedArrayOfConstructor<K, ArrayBuffer>
|
|
955
|
+
readonly internalValueArray: TypedArrayOfConstructor<V, ArrayBuffer>
|
|
956
|
+
|
|
957
|
+
constructor(
|
|
958
|
+
keys: TypedArrayOfConstructor<K, ArrayBuffer>
|
|
959
|
+
, values: TypedArrayOfConstructor<V, ArrayBuffer>
|
|
960
|
+
)
|
|
961
|
+
|
|
962
|
+
entries(): IterableIterator<[key: number, value: number]>
|
|
963
|
+
keys(): IterableIterator<number>
|
|
964
|
+
values(): IterableIterator<number>
|
|
965
|
+
|
|
966
|
+
getInternalIndexOfKey(key: number): number | undefined
|
|
967
|
+
|
|
968
|
+
has(key: number): boolean
|
|
969
|
+
get(key: number): number | undefined
|
|
970
|
+
set(key: number, value: number): void
|
|
971
|
+
delete(key: number): boolean
|
|
972
|
+
|
|
973
|
+
clear(): void
|
|
974
|
+
}
|
|
975
|
+
```
|
|
976
|
+
|
|
977
|
+
#### TypedSparseMapLite
|
|
978
|
+
```ts
|
|
979
|
+
class TypedSparseMapLite<
|
|
980
|
+
K extends UnsignedTypedArrayConstructor
|
|
981
|
+
, V extends TypedArrayConstructor
|
|
982
|
+
> {
|
|
983
|
+
get [Symbol.toStringTag](): string
|
|
984
|
+
get size(): number
|
|
985
|
+
|
|
986
|
+
readonly internalKeyArray: TypedArrayOfConstructor<K, ArrayBuffer>
|
|
987
|
+
readonly internalValueArray: TypedArrayOfConstructor<V, ArrayBuffer>
|
|
988
|
+
|
|
989
|
+
constructor(
|
|
990
|
+
keys: TypedArrayOfConstructor<K, ArrayBuffer>
|
|
991
|
+
, values: TypedArrayOfConstructor<V, ArrayBuffer>
|
|
992
|
+
)
|
|
993
|
+
|
|
994
|
+
entries(): IterableIterator<[key: number, value: number]>
|
|
995
|
+
keys(): IterableIterator<number>
|
|
996
|
+
values(): IterableIterator<number>
|
|
997
|
+
|
|
998
|
+
getInternalIndexOfKey(key: number): number | undefined
|
|
999
|
+
|
|
1000
|
+
has(key: number): boolean
|
|
1001
|
+
get(key: number): number | undefined
|
|
1002
|
+
set(key: number, value: number): void
|
|
1003
|
+
delete(key: number): boolean
|
|
1004
|
+
|
|
1005
|
+
clear(): void
|
|
1006
|
+
}
|
|
1007
|
+
```
|
|
1008
|
+
|
|
1009
|
+
#### TypedCleanSparseMap
|
|
1010
|
+
```ts
|
|
1011
|
+
class TypedCleanSparseMap<
|
|
1012
|
+
K extends UnsignedTypedArrayConstructor
|
|
1013
|
+
, V extends TypedArrayConstructor
|
|
1014
|
+
> {
|
|
1015
|
+
get [Symbol.toStringTag](): string
|
|
1016
|
+
get size(): number
|
|
1017
|
+
|
|
1018
|
+
readonly internalKeyArray: TypedArrayOfConstructor<K, ArrayBuffer>
|
|
1019
|
+
readonly internalValueArray: TypedArrayOfConstructor<V, ArrayBuffer>
|
|
1020
|
+
|
|
1021
|
+
constructor(
|
|
1022
|
+
keys: TypedArrayOfConstructor<K, ArrayBuffer>
|
|
1023
|
+
, values: TypedArrayOfConstructor<V, ArrayBuffer>
|
|
1024
|
+
)
|
|
1025
|
+
|
|
1026
|
+
entries(): IterableIterator<[key: number, value: number]>
|
|
1027
|
+
keys(): IterableIterator<number>
|
|
1028
|
+
values(): IterableIterator<number>
|
|
1029
|
+
|
|
1030
|
+
getInternalIndexOfKey(key: number): number | undefined
|
|
1031
|
+
|
|
1032
|
+
has(key: number): boolean
|
|
1033
|
+
get(key: number): number | undefined
|
|
1034
|
+
set(key: number, value: number): void
|
|
1035
|
+
delete(key: number): boolean
|
|
1036
|
+
|
|
1037
|
+
clear(): void
|
|
1038
|
+
}
|
|
1039
|
+
```
|
|
1040
|
+
|
|
1041
|
+
#### TypedCleanSparseMapLite
|
|
1042
|
+
```ts
|
|
1043
|
+
class TypedCleanSparseMapLite<
|
|
1044
|
+
K extends UnsignedTypedArrayConstructor
|
|
1045
|
+
, V extends TypedArrayConstructor
|
|
1046
|
+
> {
|
|
1047
|
+
get [Symbol.toStringTag](): string
|
|
1048
|
+
get size(): number
|
|
1049
|
+
|
|
1050
|
+
readonly internalKeyArray: TypedArrayOfConstructor<K, ArrayBuffer>
|
|
1051
|
+
readonly internalValueArray: TypedArrayOfConstructor<V, ArrayBuffer>
|
|
1052
|
+
|
|
1053
|
+
constructor(
|
|
1054
|
+
keys: TypedArrayOfConstructor<K, ArrayBuffer>
|
|
1055
|
+
, values: TypedArrayOfConstructor<V, ArrayBuffer>
|
|
1056
|
+
)
|
|
1057
|
+
|
|
1058
|
+
entries(): IterableIterator<[key: number, value: number]>
|
|
1059
|
+
keys(): IterableIterator<number>
|
|
1060
|
+
values(): IterableIterator<number>
|
|
1061
|
+
|
|
1062
|
+
getInternalIndexOfKey(key: number): number | undefined
|
|
1063
|
+
|
|
1064
|
+
has(key: number): boolean
|
|
1065
|
+
get(key: number): number | undefined
|
|
1066
|
+
set(key: number, value: number): void
|
|
1067
|
+
delete(key: number): boolean
|
|
1068
|
+
|
|
1069
|
+
clear(): void
|
|
1070
|
+
}
|
|
1071
|
+
```
|
|
1072
|
+
|
|
1073
|
+
#### DynamicTypedSparseMapLite
|
|
1074
|
+
```ts
|
|
1075
|
+
class DynamicTypedSparseMapLite<
|
|
1076
|
+
K extends UnsignedTypedArrayConstructor
|
|
1077
|
+
, V extends TypedArrayConstructor
|
|
1078
|
+
> {
|
|
1079
|
+
get [Symbol.toStringTag](): string
|
|
1080
|
+
get size(): number
|
|
1081
|
+
|
|
1082
|
+
get internalKeyArray(): TypedArrayOfConstructor<K>
|
|
1083
|
+
get internalValueArray(): TypedArrayOfConstructor<V>
|
|
1084
|
+
|
|
1085
|
+
constructor(
|
|
1086
|
+
keys: DynamicTypedArray<K>
|
|
1087
|
+
, values: DynamicTypedArray<V>
|
|
1088
|
+
)
|
|
1089
|
+
|
|
1090
|
+
entries(): IterableIterator<[key: number, value: number]>
|
|
1091
|
+
keys(): IterableIterator<number>
|
|
1092
|
+
values(): IterableIterator<number>
|
|
1093
|
+
|
|
1094
|
+
getInternalIndexOfKey(key: number): number | undefined
|
|
1095
|
+
|
|
1096
|
+
has(key: number): boolean
|
|
1097
|
+
get(key: number): number | undefined
|
|
1098
|
+
set(key: number, value: number): void
|
|
1099
|
+
delete(key: number): boolean
|
|
1100
|
+
|
|
1101
|
+
clear(): void
|
|
1102
|
+
}
|
|
1103
|
+
```
|
|
1104
|
+
|
|
1105
|
+
#### DynamicTypedCleanSparseMapLite
|
|
1106
|
+
```ts
|
|
1107
|
+
class DynamicTypedCleanSparseMapLite<
|
|
1108
|
+
K extends UnsignedTypedArrayConstructor
|
|
1109
|
+
, V extends TypedArrayConstructor
|
|
1110
|
+
> {
|
|
1111
|
+
get [Symbol.toStringTag](): string
|
|
1112
|
+
get size(): number
|
|
1113
|
+
|
|
1114
|
+
get internalKeyArray(): TypedArrayOfConstructor<K>
|
|
1115
|
+
get internalValueArray(): TypedArrayOfConstructor<V>
|
|
1116
|
+
|
|
1117
|
+
constructor(
|
|
1118
|
+
keys: DynamicTypedArray<K>
|
|
1119
|
+
, values: DynamicTypedArray<V>
|
|
1120
|
+
)
|
|
1121
|
+
|
|
1122
|
+
entries(): IterableIterator<[key: number, value: number]>
|
|
1123
|
+
keys(): IterableIterator<number>
|
|
1124
|
+
values(): IterableIterator<number>
|
|
1125
|
+
|
|
1126
|
+
getInternalIndexOfKey(key: number): number | undefined
|
|
1127
|
+
|
|
1128
|
+
has(key: number): boolean
|
|
1129
|
+
get(key: number): number | undefined
|
|
1130
|
+
set(key: number, value: number): void
|
|
1131
|
+
delete(key: number): boolean
|
|
1132
|
+
|
|
1133
|
+
clear(): void
|
|
1134
|
+
}
|
|
1135
|
+
```
|
|
1136
|
+
|
|
1137
|
+
#### ResizableTypedSparseMapLite
|
|
1138
|
+
```ts
|
|
1139
|
+
class ResizableTypedSparseMapLite<
|
|
1140
|
+
K extends UnsignedTypedArrayConstructor
|
|
1141
|
+
, V extends TypedArrayConstructor
|
|
1142
|
+
> {
|
|
1143
|
+
get [Symbol.toStringTag](): string
|
|
1144
|
+
get size(): number
|
|
1145
|
+
|
|
1146
|
+
readonly internalKeyArray: TypedArrayOfConstructor<K>
|
|
1147
|
+
readonly internalValueArray: TypedArrayOfConstructor<V>
|
|
1148
|
+
|
|
1149
|
+
constructor(
|
|
1150
|
+
keys: ResizableTypedArray<K>
|
|
1151
|
+
, values: ResizableTypedArray<V>
|
|
1152
|
+
)
|
|
1153
|
+
|
|
1154
|
+
entries(): IterableIterator<[key: number, value: number]>
|
|
1155
|
+
keys(): IterableIterator<number>
|
|
1156
|
+
values(): IterableIterator<number>
|
|
1157
|
+
|
|
1158
|
+
getInternalIndexOfKey(key: number): number | undefined
|
|
1159
|
+
|
|
1160
|
+
has(key: number): boolean
|
|
1161
|
+
get(key: number): number | undefined
|
|
1162
|
+
set(key: number, value: number): void
|
|
1163
|
+
delete(key: number): boolean
|
|
1164
|
+
|
|
1165
|
+
clear(): void
|
|
1166
|
+
}
|
|
1167
|
+
```
|
|
1168
|
+
|
|
1169
|
+
#### ResizableTypedCleanSparseMapLite
|
|
1170
|
+
```ts
|
|
1171
|
+
class ResizableTypedCleanSparseMapLite<
|
|
1172
|
+
K extends UnsignedTypedArrayConstructor
|
|
1173
|
+
, V extends TypedArrayConstructor
|
|
1174
|
+
> {
|
|
1175
|
+
get [Symbol.toStringTag](): string
|
|
1176
|
+
get size(): number
|
|
1177
|
+
|
|
1178
|
+
readonly internalKeyArray: TypedArrayOfConstructor<K>
|
|
1179
|
+
readonly internalValueArray: TypedArrayOfConstructor<V>
|
|
1180
|
+
|
|
1181
|
+
constructor(
|
|
1182
|
+
keys: ResizableTypedArray<K>
|
|
1183
|
+
, values: ResizableTypedArray<V>
|
|
1184
|
+
)
|
|
1185
|
+
|
|
1186
|
+
entries(): IterableIterator<[key: number, value: number]>
|
|
1187
|
+
keys(): IterableIterator<number>
|
|
1188
|
+
values(): IterableIterator<number>
|
|
1189
|
+
|
|
1190
|
+
getInternalIndexOfKey(key: number): number | undefined
|
|
1191
|
+
|
|
1192
|
+
has(key: number): boolean
|
|
1193
|
+
get(key: number): number | undefined
|
|
1194
|
+
set(key: number, value: number): void
|
|
1195
|
+
delete(key: number): boolean
|
|
1196
|
+
|
|
1197
|
+
clear(): void
|
|
616
1198
|
}
|
|
617
1199
|
```
|