Skip to content

Commit 0dca39e

Browse files
committed
Merge branch 'main' into perf/replace-partition-point
2 parents 65264ef + ef1473d commit 0dca39e

File tree

4 files changed

+21
-0
lines changed

4 files changed

+21
-0
lines changed

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ nanoid = "0.4.0"
4848
rand = "0.9.0"
4949
test-log = "0.2.16"
5050

51+
# half 2.5.0 has MSRV 1.81
52+
half = "=2.4.0"
53+
5154
[package.metadata.cargo-all-features]
5255
denylist = []
5356

src/abstract.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,11 @@ pub trait AbstractTree {
101101
/// Returns the amount of disk segments currently in the tree.
102102
fn segment_count(&self) -> usize;
103103

104+
/// Returns the amount of segments in levels[idx].
105+
///
106+
/// Returns `None` if the level does not exist (if idx >= 7).
107+
fn level_segment_count(&self, idx: usize) -> Option<usize>;
108+
104109
/// Returns the amount of blob files currently in the tree.
105110
fn blob_file_count(&self) -> usize {
106111
0

src/blob_tree/mod.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,10 @@ impl AbstractTree for BlobTree {
459459
self.index.segment_count()
460460
}
461461

462+
fn level_segment_count(&self, idx: usize) -> Option<usize> {
463+
self.index.level_segment_count(idx)
464+
}
465+
462466
fn first_level_segment_count(&self) -> usize {
463467
self.index.first_level_segment_count()
464468
}

src/tree/mod.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,15 @@ impl AbstractTree for Tree {
271271
self.levels.read().expect("lock is poisoned").len()
272272
}
273273

274+
fn level_segment_count(&self, idx: usize) -> Option<usize> {
275+
self.levels
276+
.read()
277+
.expect("lock is poisoned")
278+
.levels
279+
.get(idx)
280+
.map(|x| x.len())
281+
}
282+
274283
fn first_level_segment_count(&self) -> usize {
275284
self.levels
276285
.read()

0 commit comments

Comments
 (0)