articulated 1.3.0 → 1.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"functional-red-black-tree.js","sourceRoot":"","sources":["../../../src/vendor/functional-red-black-tree.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functional-red-black-tree.js","sourceRoot":"","sources":["../../../src/vendor/functional-red-black-tree.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "articulated",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "A TypeScript library for managing stable element identifiers in mutable lists",
5
5
  "author": "Matthew Weidner",
6
6
  "license": "MIT",
package/src/id_list.ts CHANGED
@@ -2,7 +2,7 @@ import { SparseIndices } from "sparse-array-rled";
2
2
  import { ElementId } from "./element_id";
3
3
  import { LeafMap, MutableLeafMap } from "./internal/leaf_map";
4
4
  import { checkCount } from "./internal/misc";
5
- import { getAndBumpNextSeq, MutableSeqMap, SeqMap } from "./internal/seq_map";
5
+ import { MutableSeqMap, SeqMap, getAndBumpNextSeq } from "./internal/seq_map";
6
6
  import { SavedIdList } from "./saved_id_list";
7
7
 
8
8
  // Most exports are only for tests. See index.ts for public exports.
@@ -40,6 +40,9 @@ import { SavedIdList } from "./saved_id_list";
40
40
  to an ElementId, e.g., for IdList.has.
41
41
  */
42
42
 
43
+ /**
44
+ * @private Only exported for internal use and tests.
45
+ */
43
46
  export interface LeafNode {
44
47
  readonly bunchId: string;
45
48
  readonly startCounter: number;
@@ -54,6 +57,8 @@ export interface LeafNode {
54
57
 
55
58
  /**
56
59
  * An inner node with inner-node children.
60
+ *
61
+ * @private Only exported for tests.
57
62
  */
58
63
  export class InnerNodeInner {
59
64
  readonly size: number;
@@ -89,6 +94,8 @@ export class InnerNodeInner {
89
94
 
90
95
  /**
91
96
  * An inner node with leaf children.
97
+ *
98
+ * @private Only exported for tests.
92
99
  */
93
100
  export class InnerNodeLeaf {
94
101
  readonly size: number;
@@ -121,6 +128,9 @@ export class InnerNodeLeaf {
121
128
  }
122
129
  }
123
130
 
131
+ /**
132
+ * @private Only exported for tests.
133
+ */
124
134
  export type InnerNode = InnerNodeInner | InnerNodeLeaf;
125
135
 
126
136
  type Located = [
@@ -137,6 +147,8 @@ type Located = [
137
147
  * Wiki B+Tree: "B+ trees can also be used for data stored in RAM.
138
148
  * In this case a reasonable choice for block size would be the size of [the] processor's cache line."
139
149
  * (64 byte cache line) / (8 byte pointer) = 8.
150
+ *
151
+ * @private Only exported for tests.
140
152
  */
141
153
  export const M = 8;
142
154
 
@@ -570,26 +582,39 @@ export class IdList {
570
582
  */
571
583
  delete(id: ElementId, count = 1) {
572
584
  checkCount(count);
585
+ if (count === 0) return this;
573
586
 
574
587
  // eslint-disable-next-line @typescript-eslint/no-this-alias
575
588
  let ans: IdList = this;
576
- for (let i = 0; i < count; i++) {
577
- ans = ans.deleteOne({ bunchId: id.bunchId, counter: id.counter + i });
578
- }
579
- return ans;
580
- }
589
+ let currentCounter = id.counter;
590
+ while (currentCounter < id.counter + count) {
591
+ const currentId: ElementId = {
592
+ bunchId: id.bunchId,
593
+ counter: currentCounter,
594
+ };
595
+ const located = ans.locate(currentId);
596
+ if (located === null) {
597
+ // Id is not known, skip
598
+ currentCounter++;
599
+ continue;
600
+ }
581
601
 
582
- private deleteOne(id: ElementId) {
583
- const located = this.locate(id);
584
- if (located === null) return this;
602
+ const leaf = located[0].node;
585
603
 
586
- const leaf = located[0].node;
587
- if (!leaf.present.has(id.counter)) return this;
604
+ // Calculate how many ids can be deleted in this leaf
605
+ const leafEnd = leaf.startCounter + leaf.count;
606
+ const remaining = id.counter + count - currentCounter;
607
+ const canDeleteInLeaf = Math.min(leafEnd - currentCounter, remaining);
588
608
 
589
- const newPresent = leaf.present.clone();
590
- newPresent.delete(id.counter);
609
+ const newPresent = leaf.present.clone();
610
+ newPresent.delete(currentCounter, canDeleteInLeaf);
611
+ ans = ans.replaceLeaf(located, { ...leaf, present: newPresent });
591
612
 
592
- return this.replaceLeaf(located, { ...leaf, present: newPresent });
613
+ // Move to the next batch
614
+ currentCounter += canDeleteInLeaf;
615
+ }
616
+
617
+ return ans;
593
618
  }
594
619
 
595
620
  /**
@@ -624,28 +649,36 @@ export class IdList {
624
649
  */
625
650
  undelete(id: ElementId, count = 1) {
626
651
  checkCount(count);
652
+ if (count === 0) return this;
627
653
 
628
654
  // eslint-disable-next-line @typescript-eslint/no-this-alias
629
655
  let ans: IdList = this;
630
- for (let i = count - 1; i >= 0; i--) {
631
- ans = ans.undeleteOne({ bunchId: id.bunchId, counter: id.counter + i });
632
- }
633
- return ans;
634
- }
656
+ let currentCounter = id.counter;
657
+ while (currentCounter < id.counter + count) {
658
+ const currentId: ElementId = {
659
+ bunchId: id.bunchId,
660
+ counter: currentCounter,
661
+ };
662
+ const located = ans.locate(currentId);
663
+ if (located === null) {
664
+ throw new Error("id is not known");
665
+ }
635
666
 
636
- private undeleteOne(id: ElementId) {
637
- const located = this.locate(id);
638
- if (located === null) {
639
- throw new Error("id is not known");
640
- }
667
+ const leaf = located[0].node;
668
+ // Calculate how many ids can be undeleted in this leaf
669
+ const leafEnd = leaf.startCounter + leaf.count;
670
+ const remaining = id.counter + count - currentCounter;
671
+ const canUndeleteInLeaf = Math.min(leafEnd - currentCounter, remaining);
641
672
 
642
- const leaf = located[0].node;
643
- if (leaf.present.has(id.counter)) return this;
673
+ const newPresent = leaf.present.clone();
674
+ newPresent.set(currentCounter, canUndeleteInLeaf);
675
+ ans = ans.replaceLeaf(located, { ...leaf, present: newPresent });
644
676
 
645
- const newPresent = leaf.present.clone();
646
- newPresent.set(id.counter);
677
+ // Move to the next batch
678
+ currentCounter += canUndeleteInLeaf;
679
+ }
647
680
 
648
- return this.replaceLeaf(located, { ...leaf, present: newPresent });
681
+ return ans;
649
682
  }
650
683
 
651
684
  /**
@@ -1,4 +1,4 @@
1
- import createRBTree, { Tree } from "../vendor/functional-red-black-tree";
1
+ import { RedBlackTree } from "../vendor/functional-red-black-tree";
2
2
  import type { LeafNode } from "../id_list";
3
3
 
4
4
  /**
@@ -9,10 +9,10 @@ import type { LeafNode } from "../id_list";
9
9
  * even though the LeafNode might start at a lower counter.
10
10
  */
11
11
  export class LeafMap {
12
- private constructor(private readonly tree: Tree<LeafNode, number>) {}
12
+ private constructor(private readonly tree: RedBlackTree<LeafNode, number>) {}
13
13
 
14
14
  static new() {
15
- return new this(createRBTree(compareLeaves));
15
+ return new this(RedBlackTree.new(compareLeaves));
16
16
  }
17
17
 
18
18
  /**
@@ -1,4 +1,4 @@
1
- import createRBTree, { Tree } from "../vendor/functional-red-black-tree";
1
+ import { RedBlackTree } from "../vendor/functional-red-black-tree";
2
2
 
3
3
  /**
4
4
  * A persistent map from an InnerNode's seq to its parent's seq
@@ -8,13 +8,13 @@ import createRBTree, { Tree } from "../vendor/functional-red-black-tree";
8
8
  */
9
9
  export class SeqMap {
10
10
  constructor(
11
- private readonly tree: Tree<number, number>,
11
+ private readonly tree: RedBlackTree<number, number>,
12
12
  private readonly nextSeq: number
13
13
  ) {}
14
14
 
15
15
  static new(): SeqMap {
16
16
  return new this(
17
- createRBTree((a, b) => a - b),
17
+ RedBlackTree.new((a, b) => a - b),
18
18
  1
19
19
  );
20
20
  }