@blackglory/structures 0.10.10 → 0.10.13

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.
@@ -4,9 +4,11 @@ export declare class SparseMap<T> {
4
4
  private indexToValue;
5
5
  get [Symbol.toStringTag](): string;
6
6
  get size(): number;
7
+ get internalArray(): T[];
7
8
  entries(): IterableIterator<[key: number, value: T]>;
8
9
  keys(): IterableIterator<number>;
9
10
  values(): IterableIterator<T>;
11
+ getInternalIndexOfKey(key: number): number | undefined;
10
12
  has(key: number): boolean;
11
13
  get(key: number): T | undefined;
12
14
  set(key: number, value: T): void;
@@ -13,6 +13,9 @@ class SparseMap {
13
13
  get size() {
14
14
  return this.indexToKey.length;
15
15
  }
16
+ get internalArray() {
17
+ return this.indexToValue;
18
+ }
16
19
  *entries() {
17
20
  for (let i = 0; i < this.indexToKey.length; i++) {
18
21
  yield [this.indexToKey[i], this.indexToValue[i]];
@@ -24,6 +27,9 @@ class SparseMap {
24
27
  values() {
25
28
  return this.indexToValue.values();
26
29
  }
30
+ getInternalIndexOfKey(key) {
31
+ return this.keyToIndex[key];
32
+ }
27
33
  has(key) {
28
34
  return key in this.keyToIndex;
29
35
  }
@@ -59,7 +65,7 @@ class SparseMap {
59
65
  const index = this.keyToIndex[key];
60
66
  this.indexToKey[index] = lastKey;
61
67
  this.indexToValue[index] = lastValue;
62
- this.keyToIndex[key] = index;
68
+ this.keyToIndex[lastKey] = index;
63
69
  delete this.keyToIndex[key];
64
70
  }
65
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sparse-map.js","sourceRoot":"","sources":["../../src/sparse-map.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAAtB;QACU,eAAU,GAA8B,EAAE,CAAA;QAC1C,eAAU,GAAa,EAAE,CAAA;QACzB,iBAAY,GAAQ,EAAE,CAAA;IAiEhC,CAAC;IA/DC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IAC/B,CAAC;IAED,CAAE,OAAO;QACP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;SACjD;IACH,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;IACjC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAA;IACnC,CAAC;IAED,GAAG,CAAC,GAAW;QAEb,OAAO,GAAG,IAAI,IAAI,CAAC,UAAU,CAAA;IAC/B,CAAC;IAED,GAAG,CAAC,GAAW;QACb,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,CAAA;YACnC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;SAChC;aAAM;YACL,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,CAAA;YACnC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;SACjC;aAAM;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;YACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;SAC7B;IACH,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAG,CAAA;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAG,CAAA;YAC1C,IAAI,GAAG,KAAK,OAAO,EAAE;gBACnB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;aAC5B;iBAAM;gBACL,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,CAAA;gBACnC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAA;gBAChC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;gBACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;gBAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;aAC5B;SACF;IACH,CAAC;CACF;AApED,8BAoEC"}
1
+ {"version":3,"file":"sparse-map.js","sourceRoot":"","sources":["../../src/sparse-map.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAAtB;QACU,eAAU,GAA8B,EAAE,CAAA;QAC1C,eAAU,GAAa,EAAE,CAAA;QACzB,iBAAY,GAAQ,EAAE,CAAA;IAyEhC,CAAC;IAvEC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IAC/B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED,CAAE,OAAO;QACP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;SACjD;IACH,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;IACjC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAA;IACnC,CAAC;IAED,qBAAqB,CAAC,GAAW;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;IAED,GAAG,CAAC,GAAW;QAEb,OAAO,GAAG,IAAI,IAAI,CAAC,UAAU,CAAA;IAC/B,CAAC;IAED,GAAG,CAAC,GAAW;QACb,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,CAAA;YACnC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;SAChC;aAAM;YACL,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,CAAA;YACnC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;SACjC;aAAM;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;YACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;SAC7B;IACH,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAG,CAAA;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAG,CAAA;YAC1C,IAAI,GAAG,KAAK,OAAO,EAAE;gBACnB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;aAC5B;iBAAM;gBACL,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,CAAA;gBACnC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAA;gBAChC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;gBACpC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAA;gBAChC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;aAC5B;SACF;IACH,CAAC;CACF;AA5ED,8BA4EC"}
@@ -1,4 +1,4 @@
1
- import { TypedArrayConstructor } from 'justypes';
1
+ import { TypedArrayConstructor, TypedArrayOfConstructor } from 'justypes';
2
2
  import { DynamicTypedArray } from './dynamic-typed-array';
3
3
  export declare class TypedSparseMap<T extends TypedArrayConstructor> {
4
4
  private keyToIndex;
@@ -6,10 +6,12 @@ export declare class TypedSparseMap<T extends TypedArrayConstructor> {
6
6
  private indexToValue;
7
7
  get [Symbol.toStringTag](): string;
8
8
  get size(): number;
9
+ get internalTypedArray(): TypedArrayOfConstructor<T>;
9
10
  constructor(array: DynamicTypedArray<T>);
10
11
  entries(): IterableIterator<[key: number, value: number]>;
11
12
  keys(): IterableIterator<number>;
12
13
  values(): IterableIterator<number>;
14
+ getInternalIndexOfKey(key: number): number | undefined;
13
15
  has(key: number): boolean;
14
16
  get(key: number): number | undefined;
15
17
  set(key: number, value: number): void;
@@ -15,6 +15,9 @@ class TypedSparseMap {
15
15
  get size() {
16
16
  return this.indexToKey.length;
17
17
  }
18
+ get internalTypedArray() {
19
+ return this.indexToValue.internalTypedArray;
20
+ }
18
21
  *entries() {
19
22
  for (let i = 0; i < this.indexToKey.length; i++) {
20
23
  yield [
@@ -31,6 +34,9 @@ class TypedSparseMap {
31
34
  yield this.indexToValue.internalTypedArray[i];
32
35
  }
33
36
  }
37
+ getInternalIndexOfKey(key) {
38
+ return this.keyToIndex[key];
39
+ }
34
40
  has(key) {
35
41
  const index = this.keyToIndex[key];
36
42
  return this.indexToKey[index] === key;
@@ -1 +1 @@
1
- {"version":3,"file":"typed-sparse-map.js","sourceRoot":"","sources":["../../src/typed-sparse-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typed-sparse-map.js","sourceRoot":"","sources":["../../src/typed-sparse-map.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,11 @@ export declare class SparseMap<T> {
4
4
  private indexToValue;
5
5
  get [Symbol.toStringTag](): string;
6
6
  get size(): number;
7
+ get internalArray(): T[];
7
8
  entries(): IterableIterator<[key: number, value: T]>;
8
9
  keys(): IterableIterator<number>;
9
10
  values(): IterableIterator<T>;
11
+ getInternalIndexOfKey(key: number): number | undefined;
10
12
  has(key: number): boolean;
11
13
  get(key: number): T | undefined;
12
14
  set(key: number, value: T): void;
@@ -13,6 +13,9 @@ class SparseMap {
13
13
  get size() {
14
14
  return this.indexToKey.length;
15
15
  }
16
+ get internalArray() {
17
+ return this.indexToValue;
18
+ }
16
19
  *entries() {
17
20
  for (let i = 0; i < this.indexToKey.length; i++) {
18
21
  yield [this.indexToKey[i], this.indexToValue[i]];
@@ -24,6 +27,9 @@ class SparseMap {
24
27
  values() {
25
28
  return this.indexToValue.values();
26
29
  }
30
+ getInternalIndexOfKey(key) {
31
+ return this.keyToIndex[key];
32
+ }
27
33
  has(key) {
28
34
  return key in this.keyToIndex;
29
35
  }
@@ -59,7 +65,7 @@ class SparseMap {
59
65
  const index = this.keyToIndex[key];
60
66
  this.indexToKey[index] = lastKey;
61
67
  this.indexToValue[index] = lastValue;
62
- this.keyToIndex[key] = index;
68
+ this.keyToIndex[lastKey] = index;
63
69
  delete this.keyToIndex[key];
64
70
  }
65
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sparse-map.js","sourceRoot":"","sources":["../../src/sparse-map.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAAtB;QACU,eAAU,GAA8B,EAAE,CAAA;QAC1C,eAAU,GAAa,EAAE,CAAA;QACzB,iBAAY,GAAQ,EAAE,CAAA;IAiEhC,CAAC;IA/DC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IAC/B,CAAC;IAED,CAAE,OAAO;QACP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;SACjD;IACH,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;IACjC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAA;IACnC,CAAC;IAED,GAAG,CAAC,GAAW;QAEb,OAAO,GAAG,IAAI,IAAI,CAAC,UAAU,CAAA;IAC/B,CAAC;IAED,GAAG,CAAC,GAAW;QACb,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,CAAA;YACnC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;SAChC;aAAM;YACL,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,CAAA;YACnC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;SACjC;aAAM;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;YACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;SAC7B;IACH,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAG,CAAA;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAG,CAAA;YAC1C,IAAI,GAAG,KAAK,OAAO,EAAE;gBACnB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;aAC5B;iBAAM;gBACL,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,CAAA;gBACnC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAA;gBAChC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;gBACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;gBAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;aAC5B;SACF;IACH,CAAC;CACF;AApED,8BAoEC"}
1
+ {"version":3,"file":"sparse-map.js","sourceRoot":"","sources":["../../src/sparse-map.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { TypedArrayConstructor } from 'justypes';
1
+ import { TypedArrayConstructor, TypedArrayOfConstructor } from 'justypes';
2
2
  import { DynamicTypedArray } from './dynamic-typed-array';
3
3
  export declare class TypedSparseMap<T extends TypedArrayConstructor> {
4
4
  private keyToIndex;
@@ -6,10 +6,12 @@ export declare class TypedSparseMap<T extends TypedArrayConstructor> {
6
6
  private indexToValue;
7
7
  get [Symbol.toStringTag](): string;
8
8
  get size(): number;
9
+ get internalTypedArray(): TypedArrayOfConstructor<T>;
9
10
  constructor(array: DynamicTypedArray<T>);
10
11
  entries(): IterableIterator<[key: number, value: number]>;
11
12
  keys(): IterableIterator<number>;
12
13
  values(): IterableIterator<number>;
14
+ getInternalIndexOfKey(key: number): number | undefined;
13
15
  has(key: number): boolean;
14
16
  get(key: number): number | undefined;
15
17
  set(key: number, value: number): void;
@@ -15,6 +15,9 @@ class TypedSparseMap {
15
15
  get size() {
16
16
  return this.indexToKey.length;
17
17
  }
18
+ get internalTypedArray() {
19
+ return this.indexToValue.internalTypedArray;
20
+ }
18
21
  *entries() {
19
22
  for (let i = 0; i < this.indexToKey.length; i++) {
20
23
  yield [
@@ -31,6 +34,9 @@ class TypedSparseMap {
31
34
  yield this.indexToValue.internalTypedArray[i];
32
35
  }
33
36
  }
37
+ getInternalIndexOfKey(key) {
38
+ return this.keyToIndex[key];
39
+ }
34
40
  has(key) {
35
41
  const index = this.keyToIndex[key];
36
42
  return this.indexToKey[index] === key;
@@ -1 +1 @@
1
- {"version":3,"file":"typed-sparse-map.js","sourceRoot":"","sources":["../../src/typed-sparse-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typed-sparse-map.js","sourceRoot":"","sources":["../../src/typed-sparse-map.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blackglory/structures",
3
- "version": "0.10.10",
3
+ "version": "0.10.13",
4
4
  "description": "",
5
5
  "files": [
6
6
  "lib",