Jack Grigg
020a7d76d7
shardtree: Use `Tree` constructors instead of struct creation
...
This makes it easier for us to track where new tree nodes are created,
and how the node kinds are used within the `ShardTree` data model.
2024-06-26 14:08:25 +00:00
Kris Nuttycombe
9359c8d1b8
shardtree: Add `root_at_checkpoint_id` methods.
...
It can be useful to refer to a specific checkpoint, rather than just a
checkpoint depth, for which one wishes to compute the root.
2023-11-07 07:44:05 -07:00
Jack Grigg
06199d6f45
shardtree: Improve documentation
2023-07-25 17:19:38 +00:00
Jack Grigg
0a6964ad05
shardtree: Move `ShardStore`-related types into module
2023-07-25 15:54:44 +00:00
Jack Grigg
1bd0a7c941
shardtree: Move error types into module
2023-07-25 15:54:44 +00:00
Jack Grigg
8d699c9667
shardtree: Pass checkpoints alongside tree to `ShardTree::insert_tree`
...
There are no `ShardTree` APIs that allow for checkpointing at arbitrary
positions, which makes sense as the relevant leaf may have been pruned.
For this API to be a viable substitute for `ShardTree::batch_insert`, it
therefore needs to support marking any checkpoints associated with the
inserted tree.
2023-07-25 13:50:27 +00:00
Jack Grigg
8a62290ffe
shardtree: Add tests comparing `insert_tree` to `batch_insert`
2023-07-24 17:22:28 +00:00
Jack Grigg
5b4dce85ca
shardtree: Switch from `Rc` to `Arc` to make trees `Send`
2023-07-17 21:02:33 +00:00
Jack Grigg
d87a85786c
shardtree: Move batch construction methods into a submodule
2023-07-10 17:39:10 +00:00