@blackglory/structures 0.15.0 → 0.15.2
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 +13 -0
- package/lib/bit-set/bit-set.d.ts +1 -1
- package/lib/bit-set/bit-set.js +6 -6
- package/lib/bit-set/bit-set.js.map +1 -1
- package/lib/bit-set/dynamic-typed-bit-set.d.ts +1 -1
- package/lib/bit-set/dynamic-typed-bit-set.js +5 -5
- package/lib/bit-set/dynamic-typed-bit-set.js.map +1 -1
- package/lib/bit-set/resizable-typed-bit-set.d.ts +1 -1
- package/lib/bit-set/resizable-typed-bit-set.js +5 -5
- package/lib/bit-set/resizable-typed-bit-set.js.map +1 -1
- package/lib/bit-set/typed-bit-set.d.ts +1 -1
- package/lib/bit-set/typed-bit-set.js +5 -5
- package/lib/bit-set/typed-bit-set.js.map +1 -1
- package/lib/dynamic-typed-array.d.ts +1 -1
- package/lib/dynamic-typed-array.js +14 -14
- package/lib/dynamic-typed-array.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/resizable-typed-array.d.ts +1 -1
- package/lib/resizable-typed-array.js +14 -14
- package/lib/resizable-typed-array.js.map +1 -1
- package/lib/sparse-map/typed-clean-sparse-map-lite.d.ts +1 -1
- package/lib/sparse-map/typed-clean-sparse-map-lite.js +8 -8
- package/lib/sparse-map/typed-clean-sparse-map-lite.js.map +1 -1
- package/lib/sparse-map/typed-clean-sparse-map.d.ts +1 -1
- package/lib/sparse-map/typed-clean-sparse-map.js +9 -9
- package/lib/sparse-map/typed-clean-sparse-map.js.map +1 -1
- package/lib/sparse-map/typed-sparse-map-lite.d.ts +1 -1
- package/lib/sparse-map/typed-sparse-map-lite.js +13 -13
- package/lib/sparse-map/typed-sparse-map-lite.js.map +1 -1
- package/lib/sparse-map/typed-sparse-map.d.ts +1 -1
- package/lib/sparse-map/typed-sparse-map.js +14 -14
- package/lib/sparse-map/typed-sparse-map.js.map +1 -1
- package/lib/sparse-set/dynamic-typed-clean-sparse-set.js +1 -1
- package/lib/sparse-set/dynamic-typed-clean-sparse-set.js.map +1 -1
- package/lib/sparse-set/dynamic-typed-sparse-set.js +1 -1
- package/lib/sparse-set/dynamic-typed-sparse-set.js.map +1 -1
- package/lib/sparse-set/resizable-typed-clean-sparse-set.js +1 -1
- package/lib/sparse-set/resizable-typed-clean-sparse-set.js.map +1 -1
- package/lib/sparse-set/resizable-typed-sparse-set.js +1 -1
- package/lib/sparse-set/resizable-typed-sparse-set.js.map +1 -1
- package/lib/sparse-set/typed-clean-sparse-set-lite.d.ts +1 -1
- package/lib/sparse-set/typed-clean-sparse-set-lite.js +6 -6
- package/lib/sparse-set/typed-clean-sparse-set-lite.js.map +1 -1
- package/lib/sparse-set/typed-clean-sparse-set.d.ts +1 -1
- package/lib/sparse-set/typed-clean-sparse-set.js +7 -7
- package/lib/sparse-set/typed-clean-sparse-set.js.map +1 -1
- package/lib/sparse-set/typed-sparse-set-lite.d.ts +1 -1
- package/lib/sparse-set/typed-sparse-set-lite.js +8 -8
- package/lib/sparse-set/typed-sparse-set-lite.js.map +1 -1
- package/lib/sparse-set/typed-sparse-set.d.ts +1 -1
- package/lib/sparse-set/typed-sparse-set.js +9 -9
- package/lib/sparse-set/typed-sparse-set.js.map +1 -1
- package/lib/{utils/get-max-value-of-unsigned-typed-array.js → typed-array.js} +1 -1
- package/lib/typed-array.js.map +1 -0
- package/package.json +1 -1
- package/src/bit-set/bit-set.ts +6 -6
- package/src/bit-set/dynamic-typed-bit-set.ts +5 -5
- package/src/bit-set/resizable-typed-bit-set.ts +5 -5
- package/src/bit-set/typed-bit-set.ts +5 -5
- package/src/dynamic-typed-array.ts +14 -14
- package/src/index.ts +1 -0
- package/src/resizable-typed-array.ts +14 -14
- package/src/sparse-map/typed-clean-sparse-map-lite.ts +8 -8
- package/src/sparse-map/typed-clean-sparse-map.ts +9 -9
- package/src/sparse-map/typed-sparse-map-lite.ts +13 -13
- package/src/sparse-map/typed-sparse-map.ts +14 -14
- package/src/sparse-set/dynamic-typed-clean-sparse-set.ts +1 -1
- package/src/sparse-set/dynamic-typed-sparse-set.ts +1 -1
- package/src/sparse-set/resizable-typed-clean-sparse-set.ts +1 -1
- package/src/sparse-set/resizable-typed-sparse-set.ts +1 -1
- package/src/sparse-set/typed-clean-sparse-set-lite.ts +6 -6
- package/src/sparse-set/typed-clean-sparse-set.ts +7 -7
- package/src/sparse-set/typed-sparse-set-lite.ts +8 -8
- package/src/sparse-set/typed-sparse-set.ts +9 -9
- package/lib/utils/get-max-value-of-unsigned-typed-array.js.map +0 -1
- /package/lib/{utils/get-max-value-of-unsigned-typed-array.d.ts → typed-array.d.ts} +0 -0
- /package/src/{utils/get-max-value-of-unsigned-typed-array.ts → typed-array.ts} +0 -0
|
@@ -3,14 +3,14 @@ export class TypedCleanSparseMapLite {
|
|
|
3
3
|
denseKeys;
|
|
4
4
|
denseValues;
|
|
5
5
|
sparse = [];
|
|
6
|
-
|
|
6
|
+
_length = 0;
|
|
7
7
|
internalKeyArray;
|
|
8
8
|
internalValueArray;
|
|
9
9
|
get [Symbol.toStringTag]() {
|
|
10
10
|
return this.constructor.name;
|
|
11
11
|
}
|
|
12
12
|
get size() {
|
|
13
|
-
return this
|
|
13
|
+
return this._length;
|
|
14
14
|
}
|
|
15
15
|
constructor(keys, values) {
|
|
16
16
|
assert(!keys.buffer.resizable, 'The keys buffer must not be resizable');
|
|
@@ -22,7 +22,7 @@ export class TypedCleanSparseMapLite {
|
|
|
22
22
|
this.internalValueArray = values;
|
|
23
23
|
}
|
|
24
24
|
*entries() {
|
|
25
|
-
for (let i = 0; i < this
|
|
25
|
+
for (let i = 0; i < this._length; i++) {
|
|
26
26
|
yield [
|
|
27
27
|
this.denseKeys[i],
|
|
28
28
|
this.denseValues[i]
|
|
@@ -30,12 +30,12 @@ export class TypedCleanSparseMapLite {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
*keys() {
|
|
33
|
-
for (let i = 0; i < this
|
|
33
|
+
for (let i = 0; i < this._length; i++) {
|
|
34
34
|
yield this.denseKeys[i];
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
*values() {
|
|
38
|
-
for (let i = 0; i < this
|
|
38
|
+
for (let i = 0; i < this._length; i++) {
|
|
39
39
|
yield this.denseValues[i];
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -60,7 +60,7 @@ export class TypedCleanSparseMapLite {
|
|
|
60
60
|
this.denseValues[index] = value;
|
|
61
61
|
}
|
|
62
62
|
else {
|
|
63
|
-
const index = this
|
|
63
|
+
const index = this._length++;
|
|
64
64
|
this.denseKeys[index] = key;
|
|
65
65
|
this.denseValues[index] = value;
|
|
66
66
|
this.sparse[key] = index;
|
|
@@ -70,7 +70,7 @@ export class TypedCleanSparseMapLite {
|
|
|
70
70
|
const index = this.sparse[key];
|
|
71
71
|
if (index !== undefined) {
|
|
72
72
|
this.sparse[key] = undefined;
|
|
73
|
-
const lastIndex = --this
|
|
73
|
+
const lastIndex = --this._length;
|
|
74
74
|
const lastKey = this.denseKeys[lastIndex];
|
|
75
75
|
const lastValue = this.denseValues[lastIndex];
|
|
76
76
|
if (key !== lastKey) {
|
|
@@ -85,7 +85,7 @@ export class TypedCleanSparseMapLite {
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
clear() {
|
|
88
|
-
this
|
|
88
|
+
this._length = 0;
|
|
89
89
|
this.sparse.length = 0;
|
|
90
90
|
}
|
|
91
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-clean-sparse-map-lite.js","sourceRoot":"","sources":["../../src/sparse-map/typed-clean-sparse-map-lite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAG3C,MAAM,OAAO,uBAAuB;IAI1B,SAAS,CAA4B;IACrC,WAAW,CAA4B;IACvC,MAAM,GAA8B,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"typed-clean-sparse-map-lite.js","sourceRoot":"","sources":["../../src/sparse-map/typed-clean-sparse-map-lite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { TypedArrayConstructor, UnsignedTypedArrayConstructor, TypedArrayOfConstructor } from 'justypes';
|
|
2
2
|
export declare class TypedCleanSparseMap<K extends UnsignedTypedArrayConstructor, V extends TypedArrayConstructor> {
|
|
3
|
-
#private;
|
|
4
3
|
private denseKeys;
|
|
5
4
|
private denseValues;
|
|
6
5
|
private sparse;
|
|
7
6
|
private readonly NULL;
|
|
7
|
+
private _length;
|
|
8
8
|
readonly internalKeyArray: TypedArrayOfConstructor<K, ArrayBuffer>;
|
|
9
9
|
readonly internalValueArray: TypedArrayOfConstructor<V, ArrayBuffer>;
|
|
10
10
|
get [Symbol.toStringTag](): string;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { assert } from '@blackglory/errors';
|
|
2
2
|
import { go } from '@blackglory/go';
|
|
3
|
-
import { getMaxValueOfUnsignedTypedArray, getMaxValueOfUnsignedTypedArrayConstructor } from '../
|
|
3
|
+
import { getMaxValueOfUnsignedTypedArray, getMaxValueOfUnsignedTypedArrayConstructor } from '../typed-array.js';
|
|
4
4
|
export class TypedCleanSparseMap {
|
|
5
5
|
denseKeys;
|
|
6
6
|
denseValues;
|
|
7
7
|
sparse;
|
|
8
8
|
NULL;
|
|
9
|
-
|
|
9
|
+
_length = 0;
|
|
10
10
|
internalKeyArray;
|
|
11
11
|
internalValueArray;
|
|
12
12
|
get [Symbol.toStringTag]() {
|
|
13
13
|
return this.constructor.name;
|
|
14
14
|
}
|
|
15
15
|
get size() {
|
|
16
|
-
return this
|
|
16
|
+
return this._length;
|
|
17
17
|
}
|
|
18
18
|
constructor(keys, values) {
|
|
19
19
|
assert(!keys.buffer.resizable, 'The keys buffer must not be resizable');
|
|
@@ -47,7 +47,7 @@ export class TypedCleanSparseMap {
|
|
|
47
47
|
this.sparse = sparse;
|
|
48
48
|
}
|
|
49
49
|
*entries() {
|
|
50
|
-
for (let i = 0; i < this
|
|
50
|
+
for (let i = 0; i < this._length; i++) {
|
|
51
51
|
yield [
|
|
52
52
|
this.denseKeys[i],
|
|
53
53
|
this.denseValues[i]
|
|
@@ -55,12 +55,12 @@ export class TypedCleanSparseMap {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
*keys() {
|
|
58
|
-
for (let i = 0; i < this
|
|
58
|
+
for (let i = 0; i < this._length; i++) {
|
|
59
59
|
yield this.denseKeys[i];
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
*values() {
|
|
63
|
-
for (let i = 0; i < this
|
|
63
|
+
for (let i = 0; i < this._length; i++) {
|
|
64
64
|
yield this.denseValues[i];
|
|
65
65
|
}
|
|
66
66
|
}
|
|
@@ -85,7 +85,7 @@ export class TypedCleanSparseMap {
|
|
|
85
85
|
this.denseValues[index] = value;
|
|
86
86
|
}
|
|
87
87
|
else {
|
|
88
|
-
const index = this
|
|
88
|
+
const index = this._length++;
|
|
89
89
|
this.denseKeys[index] = key;
|
|
90
90
|
this.denseValues[index] = value;
|
|
91
91
|
this.sparse[key] = index;
|
|
@@ -95,7 +95,7 @@ export class TypedCleanSparseMap {
|
|
|
95
95
|
const index = this.sparse[key];
|
|
96
96
|
if (index !== this.NULL) {
|
|
97
97
|
this.sparse[key] = this.NULL;
|
|
98
|
-
const lastIndex = --this
|
|
98
|
+
const lastIndex = --this._length;
|
|
99
99
|
const lastKey = this.denseKeys[lastIndex];
|
|
100
100
|
const lastValue = this.denseValues[lastIndex];
|
|
101
101
|
if (key !== lastKey) {
|
|
@@ -110,7 +110,7 @@ export class TypedCleanSparseMap {
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
clear() {
|
|
113
|
-
this
|
|
113
|
+
this._length = 0;
|
|
114
114
|
this.sparse.fill(this.NULL);
|
|
115
115
|
}
|
|
116
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-clean-sparse-map.js","sourceRoot":"","sources":["../../src/sparse-map/typed-clean-sparse-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,+BAA+B,EAAE,0CAA0C,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"typed-clean-sparse-map.js","sourceRoot":"","sources":["../../src/sparse-map/typed-clean-sparse-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { TypedArrayConstructor, UnsignedTypedArrayConstructor, TypedArrayOfConstructor } from 'justypes';
|
|
2
2
|
export declare class TypedSparseMapLite<K extends UnsignedTypedArrayConstructor, V extends TypedArrayConstructor> {
|
|
3
|
-
#private;
|
|
4
3
|
private denseKeys;
|
|
5
4
|
private denseValues;
|
|
6
5
|
private sparse;
|
|
6
|
+
private _length;
|
|
7
7
|
readonly internalKeyArray: TypedArrayOfConstructor<K, ArrayBuffer>;
|
|
8
8
|
readonly internalValueArray: TypedArrayOfConstructor<V, ArrayBuffer>;
|
|
9
9
|
get [Symbol.toStringTag](): string;
|
|
@@ -3,14 +3,14 @@ export class TypedSparseMapLite {
|
|
|
3
3
|
denseKeys;
|
|
4
4
|
denseValues;
|
|
5
5
|
sparse = [];
|
|
6
|
-
|
|
6
|
+
_length = 0;
|
|
7
7
|
internalKeyArray;
|
|
8
8
|
internalValueArray;
|
|
9
9
|
get [Symbol.toStringTag]() {
|
|
10
10
|
return this.constructor.name;
|
|
11
11
|
}
|
|
12
12
|
get size() {
|
|
13
|
-
return this
|
|
13
|
+
return this._length;
|
|
14
14
|
}
|
|
15
15
|
constructor(keys, values) {
|
|
16
16
|
assert(!keys.buffer.resizable, 'The keys buffer must not be resizable');
|
|
@@ -22,7 +22,7 @@ export class TypedSparseMapLite {
|
|
|
22
22
|
this.internalValueArray = values;
|
|
23
23
|
}
|
|
24
24
|
*entries() {
|
|
25
|
-
for (let i = 0; i < this
|
|
25
|
+
for (let i = 0; i < this._length; i++) {
|
|
26
26
|
yield [
|
|
27
27
|
this.denseKeys[i],
|
|
28
28
|
this.denseValues[i]
|
|
@@ -30,19 +30,19 @@ export class TypedSparseMapLite {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
*keys() {
|
|
33
|
-
for (let i = 0; i < this
|
|
33
|
+
for (let i = 0; i < this._length; i++) {
|
|
34
34
|
yield this.denseKeys[i];
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
*values() {
|
|
38
|
-
for (let i = 0; i < this
|
|
38
|
+
for (let i = 0; i < this._length; i++) {
|
|
39
39
|
yield this.denseValues[i];
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
getInternalIndexOfKey(key) {
|
|
43
43
|
const index = this.sparse[key];
|
|
44
44
|
if (index !== undefined &&
|
|
45
|
-
index < this
|
|
45
|
+
index < this._length &&
|
|
46
46
|
index < this.denseKeys.length &&
|
|
47
47
|
this.denseKeys[index] === key) {
|
|
48
48
|
return index;
|
|
@@ -51,14 +51,14 @@ export class TypedSparseMapLite {
|
|
|
51
51
|
has(key) {
|
|
52
52
|
const index = this.sparse[key];
|
|
53
53
|
return index !== undefined
|
|
54
|
-
&& index < this
|
|
54
|
+
&& index < this._length
|
|
55
55
|
&& index < this.denseKeys.length
|
|
56
56
|
&& this.denseKeys[index] === key;
|
|
57
57
|
}
|
|
58
58
|
get(key) {
|
|
59
59
|
const index = this.sparse[key];
|
|
60
60
|
if (index !== undefined &&
|
|
61
|
-
index < this
|
|
61
|
+
index < this._length &&
|
|
62
62
|
index < this.denseKeys.length &&
|
|
63
63
|
this.denseKeys[index] === key) {
|
|
64
64
|
return this.denseValues[index];
|
|
@@ -70,13 +70,13 @@ export class TypedSparseMapLite {
|
|
|
70
70
|
set(key, value) {
|
|
71
71
|
const index = this.sparse[key];
|
|
72
72
|
if (index !== undefined &&
|
|
73
|
-
index < this
|
|
73
|
+
index < this._length &&
|
|
74
74
|
index < this.denseKeys.length &&
|
|
75
75
|
this.denseKeys[index] === key) {
|
|
76
76
|
this.denseValues[index] = value;
|
|
77
77
|
}
|
|
78
78
|
else {
|
|
79
|
-
const index = this
|
|
79
|
+
const index = this._length++;
|
|
80
80
|
this.denseKeys[index] = key;
|
|
81
81
|
this.denseValues[index] = value;
|
|
82
82
|
this.sparse[key] = index;
|
|
@@ -85,10 +85,10 @@ export class TypedSparseMapLite {
|
|
|
85
85
|
delete(key) {
|
|
86
86
|
const index = this.sparse[key];
|
|
87
87
|
if (index !== undefined &&
|
|
88
|
-
index < this
|
|
88
|
+
index < this._length &&
|
|
89
89
|
index < this.denseKeys.length &&
|
|
90
90
|
this.denseKeys[index] === key) {
|
|
91
|
-
const lastIndex = --this
|
|
91
|
+
const lastIndex = --this._length;
|
|
92
92
|
const lastKey = this.denseKeys[lastIndex];
|
|
93
93
|
const lastValue = this.denseValues[lastIndex];
|
|
94
94
|
if (key !== lastKey) {
|
|
@@ -103,7 +103,7 @@ export class TypedSparseMapLite {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
clear() {
|
|
106
|
-
this
|
|
106
|
+
this._length = 0;
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
//# sourceMappingURL=typed-sparse-map-lite.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-sparse-map-lite.js","sourceRoot":"","sources":["../../src/sparse-map/typed-sparse-map-lite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAG3C,MAAM,OAAO,kBAAkB;IAIrB,SAAS,CAA4B;IACrC,WAAW,CAA4B;IACvC,MAAM,GAA8B,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"typed-sparse-map-lite.js","sourceRoot":"","sources":["../../src/sparse-map/typed-sparse-map-lite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { TypedArrayConstructor, UnsignedTypedArrayConstructor, TypedArrayOfConstructor } from 'justypes';
|
|
2
2
|
export declare class TypedSparseMap<K extends UnsignedTypedArrayConstructor, V extends TypedArrayConstructor> {
|
|
3
|
-
#private;
|
|
4
3
|
private denseKeys;
|
|
5
4
|
private denseValues;
|
|
6
5
|
private sparse;
|
|
6
|
+
private _length;
|
|
7
7
|
readonly internalKeyArray: TypedArrayOfConstructor<K, ArrayBuffer>;
|
|
8
8
|
readonly internalValueArray: TypedArrayOfConstructor<V, ArrayBuffer>;
|
|
9
9
|
get [Symbol.toStringTag](): string;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { assert } from '@blackglory/errors';
|
|
2
2
|
import { go } from '@blackglory/go';
|
|
3
|
-
import { getMaxValueOfUnsignedTypedArray, getMaxValueOfUnsignedTypedArrayConstructor } from '../
|
|
3
|
+
import { getMaxValueOfUnsignedTypedArray, getMaxValueOfUnsignedTypedArrayConstructor } from '../typed-array.js';
|
|
4
4
|
export class TypedSparseMap {
|
|
5
5
|
denseKeys;
|
|
6
6
|
denseValues;
|
|
7
7
|
sparse;
|
|
8
|
-
|
|
8
|
+
_length = 0;
|
|
9
9
|
internalKeyArray;
|
|
10
10
|
internalValueArray;
|
|
11
11
|
get [Symbol.toStringTag]() {
|
|
12
12
|
return this.constructor.name;
|
|
13
13
|
}
|
|
14
14
|
get size() {
|
|
15
|
-
return this
|
|
15
|
+
return this._length;
|
|
16
16
|
}
|
|
17
17
|
constructor(keys, values) {
|
|
18
18
|
assert(!keys.buffer.resizable, 'The keys buffer must not be resizable');
|
|
@@ -43,7 +43,7 @@ export class TypedSparseMap {
|
|
|
43
43
|
this.sparse = new sparseConstructor(getMaxValueOfUnsignedTypedArray(keys) + 1);
|
|
44
44
|
}
|
|
45
45
|
*entries() {
|
|
46
|
-
for (let i = 0; i < this
|
|
46
|
+
for (let i = 0; i < this._length; i++) {
|
|
47
47
|
yield [
|
|
48
48
|
this.denseKeys[i],
|
|
49
49
|
this.denseValues[i]
|
|
@@ -51,19 +51,19 @@ export class TypedSparseMap {
|
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
*keys() {
|
|
54
|
-
for (let i = 0; i < this
|
|
54
|
+
for (let i = 0; i < this._length; i++) {
|
|
55
55
|
yield this.denseKeys[i];
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
*values() {
|
|
59
|
-
for (let i = 0; i < this
|
|
59
|
+
for (let i = 0; i < this._length; i++) {
|
|
60
60
|
yield this.denseValues[i];
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
getInternalIndexOfKey(key) {
|
|
64
64
|
const index = this.sparse[key];
|
|
65
65
|
if (index !== undefined &&
|
|
66
|
-
index < this
|
|
66
|
+
index < this._length &&
|
|
67
67
|
index < this.denseKeys.length &&
|
|
68
68
|
this.denseKeys[index] === key) {
|
|
69
69
|
return index;
|
|
@@ -72,14 +72,14 @@ export class TypedSparseMap {
|
|
|
72
72
|
has(key) {
|
|
73
73
|
const index = this.sparse[key];
|
|
74
74
|
return index !== undefined
|
|
75
|
-
&& index < this
|
|
75
|
+
&& index < this._length
|
|
76
76
|
&& index < this.denseKeys.length
|
|
77
77
|
&& this.denseKeys[index] === key;
|
|
78
78
|
}
|
|
79
79
|
get(key) {
|
|
80
80
|
const index = this.sparse[key];
|
|
81
81
|
if (index !== undefined &&
|
|
82
|
-
index < this
|
|
82
|
+
index < this._length &&
|
|
83
83
|
index < this.denseKeys.length &&
|
|
84
84
|
this.denseKeys[index] === key) {
|
|
85
85
|
return this.denseValues[index];
|
|
@@ -91,13 +91,13 @@ export class TypedSparseMap {
|
|
|
91
91
|
set(key, value) {
|
|
92
92
|
const index = this.sparse[key];
|
|
93
93
|
if (index !== undefined &&
|
|
94
|
-
index < this
|
|
94
|
+
index < this._length &&
|
|
95
95
|
index < this.denseKeys.length &&
|
|
96
96
|
this.denseKeys[index] === key) {
|
|
97
97
|
this.denseValues[index] = value;
|
|
98
98
|
}
|
|
99
99
|
else {
|
|
100
|
-
const index = this
|
|
100
|
+
const index = this._length++;
|
|
101
101
|
this.denseKeys[index] = key;
|
|
102
102
|
this.denseValues[index] = value;
|
|
103
103
|
this.sparse[key] = index;
|
|
@@ -106,10 +106,10 @@ export class TypedSparseMap {
|
|
|
106
106
|
delete(key) {
|
|
107
107
|
const index = this.sparse[key];
|
|
108
108
|
if (index !== undefined &&
|
|
109
|
-
index < this
|
|
109
|
+
index < this._length &&
|
|
110
110
|
index < this.denseKeys.length &&
|
|
111
111
|
this.denseKeys[index] === key) {
|
|
112
|
-
const lastIndex = --this
|
|
112
|
+
const lastIndex = --this._length;
|
|
113
113
|
const lastKey = this.denseKeys[lastIndex];
|
|
114
114
|
const lastValue = this.denseValues[lastIndex];
|
|
115
115
|
if (key !== lastKey) {
|
|
@@ -124,7 +124,7 @@ export class TypedSparseMap {
|
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
clear() {
|
|
127
|
-
this
|
|
127
|
+
this._length = 0;
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
//# sourceMappingURL=typed-sparse-map.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-sparse-map.js","sourceRoot":"","sources":["../../src/sparse-map/typed-sparse-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,+BAA+B,EAAE,0CAA0C,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"typed-sparse-map.js","sourceRoot":"","sources":["../../src/sparse-map/typed-sparse-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DynamicTypedArray } from '../dynamic-typed-array.js';
|
|
2
2
|
import { assert } from '@blackglory/errors';
|
|
3
|
-
import { getMaxValueOfUnsignedTypedArray, getMaxValueOfUnsignedTypedArrayConstructor } from '../
|
|
3
|
+
import { getMaxValueOfUnsignedTypedArray, getMaxValueOfUnsignedTypedArrayConstructor } from '../typed-array.js';
|
|
4
4
|
import { go } from '@blackglory/go';
|
|
5
5
|
export class DynamicTypedCleanSparseSet {
|
|
6
6
|
dense;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-typed-clean-sparse-set.js","sourceRoot":"","sources":["../../src/sparse-set/dynamic-typed-clean-sparse-set.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,+BAA+B,EAAE,0CAA0C,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"dynamic-typed-clean-sparse-set.js","sourceRoot":"","sources":["../../src/sparse-set/dynamic-typed-clean-sparse-set.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DynamicTypedArray } from '../dynamic-typed-array.js';
|
|
2
2
|
import { assert } from '@blackglory/errors';
|
|
3
3
|
import { go } from '@blackglory/go';
|
|
4
|
-
import { getMaxValueOfUnsignedTypedArray, getMaxValueOfUnsignedTypedArrayConstructor } from '../
|
|
4
|
+
import { getMaxValueOfUnsignedTypedArray, getMaxValueOfUnsignedTypedArrayConstructor } from '../typed-array.js';
|
|
5
5
|
export class DynamicTypedSparseSet {
|
|
6
6
|
dense;
|
|
7
7
|
sparse;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-typed-sparse-set.js","sourceRoot":"","sources":["../../src/sparse-set/dynamic-typed-sparse-set.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,+BAA+B,EAAE,0CAA0C,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"dynamic-typed-sparse-set.js","sourceRoot":"","sources":["../../src/sparse-set/dynamic-typed-sparse-set.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ResizableTypedArray } from '../resizable-typed-array.js';
|
|
2
2
|
import { assert } from '@blackglory/errors';
|
|
3
3
|
import { go } from '@blackglory/go';
|
|
4
|
-
import { getMaxValueOfUnsignedTypedArray, getMaxValueOfUnsignedTypedArrayConstructor } from '../
|
|
4
|
+
import { getMaxValueOfUnsignedTypedArray, getMaxValueOfUnsignedTypedArrayConstructor } from '../typed-array.js';
|
|
5
5
|
export class ResizableTypedCleanSparseSet {
|
|
6
6
|
dense;
|
|
7
7
|
sparse;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resizable-typed-clean-sparse-set.js","sourceRoot":"","sources":["../../src/sparse-set/resizable-typed-clean-sparse-set.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,+BAA+B,EAAE,0CAA0C,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"resizable-typed-clean-sparse-set.js","sourceRoot":"","sources":["../../src/sparse-set/resizable-typed-clean-sparse-set.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ResizableTypedArray } from '../resizable-typed-array.js';
|
|
2
|
-
import { getMaxValueOfUnsignedTypedArray, getMaxValueOfUnsignedTypedArrayConstructor } from '../
|
|
2
|
+
import { getMaxValueOfUnsignedTypedArray, getMaxValueOfUnsignedTypedArrayConstructor } from '../typed-array.js';
|
|
3
3
|
import { go } from '@blackglory/go';
|
|
4
4
|
import { assert } from '@blackglory/errors';
|
|
5
5
|
export class ResizableTypedSparseSet {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resizable-typed-sparse-set.js","sourceRoot":"","sources":["../../src/sparse-set/resizable-typed-sparse-set.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,+BAA+B,EAAE,0CAA0C,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"resizable-typed-sparse-set.js","sourceRoot":"","sources":["../../src/sparse-set/resizable-typed-sparse-set.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { UnsignedTypedArray } from 'justypes';
|
|
2
2
|
export declare class TypedCleanSparseSetLite implements Iterable<number> {
|
|
3
|
-
#private;
|
|
4
3
|
private dense;
|
|
5
4
|
private sparse;
|
|
5
|
+
private _length;
|
|
6
6
|
get [Symbol.toStringTag](): string;
|
|
7
7
|
get size(): number;
|
|
8
8
|
constructor(array: UnsignedTypedArray<ArrayBuffer>);
|
|
@@ -2,12 +2,12 @@ import { assert } from '@blackglory/errors';
|
|
|
2
2
|
export class TypedCleanSparseSetLite {
|
|
3
3
|
dense;
|
|
4
4
|
sparse = [];
|
|
5
|
-
|
|
5
|
+
_length = 0;
|
|
6
6
|
get [Symbol.toStringTag]() {
|
|
7
7
|
return this.constructor.name;
|
|
8
8
|
}
|
|
9
9
|
get size() {
|
|
10
|
-
return this
|
|
10
|
+
return this._length;
|
|
11
11
|
}
|
|
12
12
|
constructor(array) {
|
|
13
13
|
assert(!array.buffer.resizable, 'The array buffer must not be resizable');
|
|
@@ -17,7 +17,7 @@ export class TypedCleanSparseSetLite {
|
|
|
17
17
|
return this.values();
|
|
18
18
|
}
|
|
19
19
|
*values() {
|
|
20
|
-
for (let i = 0; i < this
|
|
20
|
+
for (let i = 0; i < this._length; i++) {
|
|
21
21
|
yield this.dense[i];
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -26,7 +26,7 @@ export class TypedCleanSparseSetLite {
|
|
|
26
26
|
}
|
|
27
27
|
add(value) {
|
|
28
28
|
if (!this.has(value)) {
|
|
29
|
-
const index = this
|
|
29
|
+
const index = this._length++;
|
|
30
30
|
this.dense[index] = value;
|
|
31
31
|
this.sparse[value] = index;
|
|
32
32
|
}
|
|
@@ -35,7 +35,7 @@ export class TypedCleanSparseSetLite {
|
|
|
35
35
|
const index = this.sparse[value];
|
|
36
36
|
if (index !== undefined) {
|
|
37
37
|
this.sparse[value] = undefined;
|
|
38
|
-
const lastIndex = --this
|
|
38
|
+
const lastIndex = --this._length;
|
|
39
39
|
const lastValue = this.dense[lastIndex];
|
|
40
40
|
if (value !== lastValue) {
|
|
41
41
|
this.dense[index] = lastValue;
|
|
@@ -48,7 +48,7 @@ export class TypedCleanSparseSetLite {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
clear() {
|
|
51
|
-
this
|
|
51
|
+
this._length = 0;
|
|
52
52
|
this.sparse.length = 0;
|
|
53
53
|
}
|
|
54
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-clean-sparse-set-lite.js","sourceRoot":"","sources":["../../src/sparse-set/typed-clean-sparse-set-lite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAG3C,MAAM,OAAO,uBAAuB;IAC1B,KAAK,CAAoB;IACzB,MAAM,GAA8B,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"typed-clean-sparse-set-lite.js","sourceRoot":"","sources":["../../src/sparse-set/typed-clean-sparse-set-lite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAG3C,MAAM,OAAO,uBAAuB;IAC1B,KAAK,CAAoB;IACzB,MAAM,GAA8B,EAAE,CAAA;IACtC,OAAO,GAAG,CAAC,CAAA;IAEnB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,YAAY,KAAsC;QAChD,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,wCAAwC,CAAC,CAAA;QAEzE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAED,CAAE,MAAM;QACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAa;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,CAAA;IACzC,CAAC;IAED,GAAG,CAAC,KAAa;QACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;YAE9B,MAAM,SAAS,GAAG,EAAE,IAAI,CAAC,OAAO,CAAA;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;gBAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;YAChC,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;QAChB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IACxB,CAAC;CACF"}
|