Kris Nuttycombe
422889cd5a
Improve documentation of private `extend_to_level` method.
2025-02-19 08:42:29 -07:00
Kris Nuttycombe
1ad56addf7
Silence Clippy type complexity complaint.
2025-02-19 08:38:09 -07:00
Kris Nuttycombe
1d7cd427f0
shardtree: make construction of fully-empty Parent nodes an error
...
Ideally the errors here would all be panics, as construction of such a
node represents a programming error; however, it is preferable to return
extra contextual information about the circumstance that led to this
error where possible, so we model this as an error where possible
without altering the public API.
2025-02-17 16:46:06 -07:00
Kris Nuttycombe
9edc305fa1
Fix clippy beta lints
2025-01-31 13:05:18 -07:00
Kris Nuttycombe
8235a536fc
Release shardtree-v0.6.1
2025-01-30 20:55:04 -07:00
Kris Nuttycombe
04280c42ab
Release shardtree version 0.6
2025-01-28 12:29:13 -07:00
Kris Nuttycombe
353cf3e9ff
Update `shardtree` to depend upon `incrementalmerkletree 0.8.0`
2024-12-11 21:30:32 -07:00
Kris Nuttycombe
fb62fb6175
Merge remote-tracking branch 'upstream/hotfix/shardtree-v0.3.x' into merge_shardtree_hotfix
2024-12-11 14:59:44 -07:00
Kris Nuttycombe
63cbc0a223
Release `shardtree v0.3.2`
2024-12-09 14:31:55 -07:00
Jack Grigg
766a00eb66
shardtree: Justify `unwraps` due to upheld pre-conditions
2024-12-09 13:44:38 -07:00
Jack Grigg
150f5544ba
shardtree: Justify `unwrap`s due to an `Infallible` error type
...
Rust 1.82 adds support for omitting empty types in pattern matching,
which would make these much clearer.
2024-12-02 09:46:50 -07:00
Jack Grigg
c05f2fac00
shardtree: Make `BatchInsertionResult.max_insert_position` non-optional
2024-11-23 04:03:50 +00:00
Jack Grigg
166872e49b
shardtree: Ensure `LocatedTree` is correct by construction
...
This ensures that the various existing `unwrap`s are correctly
justified.
2024-11-23 03:47:35 +00:00
Jack Grigg
1e81f3ca45
shardtree: Justify `unwraps` due to upheld pre-conditions
2024-11-23 03:21:47 +00:00
Jack Grigg
74410d059f
shardtree: Justify `unwrap`s due to an `Infallible` error type
...
Rust 1.82 adds support for omitting empty types in pattern matching,
which would make these much clearer.
2024-11-23 00:51:30 +00:00
Kris Nuttycombe
771a933d88
Release shardtree version 0.5.0
2024-10-04 08:14:43 -06:00
Kris Nuttycombe
518fa387d7
Use the stable incrementalmerkletree 0.7 dependency in `incrementalmerkletree-testing` and `shardtree`
2024-10-02 12:51:05 -06:00
Kris Nuttycombe
3f59900acf
Apply documentation suggestions from code review
...
Co-authored-by: Jack Grigg <thestr4d@gmail.com>
2024-09-27 10:55:01 -06:00
Kris Nuttycombe
9a77e51cc4
shardtree: Rework rewind & checkpoint depth handling.
2024-09-27 08:44:14 -06:00
Kris Nuttycombe
cfc4fcbac8
Extract incrementalmerkletree::testing module to a separate `incrementalmerkletree-testing` crate.
2024-09-25 13:37:03 -06:00
Kris Nuttycombe
6f6699da21
Use common workspace package stanza & workspace dependencies.
...
This requires us to upgrade our MSRV to 1.64
2024-09-25 13:37:03 -06:00
Eric Tu
8ccb40d088
CHANGELOG
2024-09-12 11:48:22 -04:00
Eric Tu
16eff253ad
FnMut instead of Fn
2024-09-10 15:57:50 -04:00
Eric Tu
eb3843e0cf
for_each_checkpoint
2024-09-10 10:12:30 -04:00
Eric Tu
0e9d4d635a
Add max_checkpoints getter
2024-09-06 12:14:28 -04:00
Kris Nuttycombe
ef7fcde5fa
Release shardtree version 0.4.0
2024-08-12 11:33:36 -06:00
Kris Nuttycombe
1f86f1259a
Release incrementalmerkletree version 0.6.0
2024-08-12 10:18:42 -06:00
Kris Nuttycombe
192cb3ffda
shardtree: Remove `Node::Pruned`
...
In 7e48886fd3
, `Node::Pruned` was
introduced in order to fix problems with `LocatedTree::max_position`
resulting from reinsertion of subtree information as children of
a previously pruned subtree represented by a `Node::Leaf` at its
root. This fix introduced a large amount of complexity that is
better resolved by fixing the `max_position` function in a different
way and generally minimizing its usage.
2024-06-27 16:30:57 -06:00
Kris Nuttycombe
88681ae335
shardtree: Reduce dependence upon `LocatedTree::max_position`
2024-06-27 16:30:57 -06:00
Kris Nuttycombe
b38b9d5d62
shardtree: Minor cleanups & documentation improvements.
2024-06-27 16:30:52 -06:00
Kris Nuttycombe
f5adcd5a2c
shardtree: Fix pruning of annotated `Parent` nodes with `Nil` children.
...
The current behavior of `unite` incorrectly discards annotation data.
2024-06-27 14:39:48 -06:00
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
d40e178f8d
shardtree: Do not unify pruned nodes with empty nodes.
2024-05-28 19:22:45 -06:00
Kris Nuttycombe
7e48886fd3
shardtree: Add `Pruned` node type
...
In circumstances where insertion into a subtree results in pruning, and
then a subsequent insertion within the same range contains leaves that
must be retained, it is necessary to be able to distinguish the maximum
position among notes that have been observed but later pruned. This
fixes a bug wherein an insertion into an already-pruned tree could cause
the maximum position reported for the subtree to regress.
2024-05-28 19:22:45 -06:00
Kris Nuttycombe
ffc087424d
shardtree: Discard `REFERENCE` retention in leaf overwrites.
...
Also, disallow value-conflicted overwrites at the leaf level.
2024-05-28 17:13:31 -06:00
Kris Nuttycombe
e55ff2d7f2
incrementalmerkletree: add `Reference` retention type.
...
This new retention type is intended to be used when inserting frontiers
that should not automatically be pruned.
Also, improve documentation for the `Retention` type.
2024-05-28 17:10:38 -06:00
Kris Nuttycombe
57b6e8999f
shardtree: `Nil` nodes cannot replace any other sort of node in the tree.
2024-05-28 15:54:18 -06:00
Kris Nuttycombe
811d384bd4
shardtree: Improve tracing
2024-05-28 15:50:07 -06:00
Kris Nuttycombe
7c862c16b3
Release shardtree version 0.3.1
2024-04-03 13:49:13 -06:00
Kris Nuttycombe
52e956b8ec
shardtree: Ensure `test-dependencies` feature enables `incrementalmerkletree/test-dependencies`
...
This is intended to fix an issue with the `docs.rs` build.
2024-04-03 11:58:37 -06:00
Kris Nuttycombe
22ee3d8f4e
Release shardtree version 0.3.0
2024-03-24 18:29:25 -06:00
Kris Nuttycombe
ac9ecaca12
shardtree: Add `InsertionError::MarkedRetentionInvalid`
2024-03-24 18:26:00 -06:00
Kris Nuttycombe
17f2bcd037
Apply suggestions from code review
...
Co-authored-by: str4d <thestr4d@gmail.com>
2024-03-11 16:51:06 -06:00
Kris Nuttycombe
fa147c89c6
shardtree: Add `ShardTree::store_mut`
2024-03-11 13:03:03 -06:00
Kris Nuttycombe
25cb18973e
shardtree: Add `ShardTree::insert_frontier`
2024-03-11 13:02:34 -06:00
Kris Nuttycombe
214d76e40a
shardtree: Add an accessor for a `ShardTree`'s underlying `ShardStore`
2024-03-09 17:12:19 -07:00
Kris Nuttycombe
769fd2be45
shardtree: Release version 0.2.0
2023-11-07 09:57:48 -07:00
Kris Nuttycombe
39ce028701
Apply suggestions from code review
...
Co-authored-by: str4d <thestr4d@gmail.com>
2023-11-07 07:44:07 -07:00
Kris Nuttycombe
b2c5cd9fc4
shardtree: Correct erroneous `ShardStore::get_checkpoint_at_depth` documentation
2023-11-07 07:44:07 -07:00
Kris Nuttycombe
8d301a14dd
shardtree: Add `witness_at_checkpoint_id` methods.
...
It is useful to be able to refer to a specific checkpoint, rather than
just a checkpoint depth, when computing a witness.
2023-11-07 07:44:07 -07:00