File tree Expand file tree Collapse file tree 4 files changed +21
-0
lines changed Expand file tree Collapse file tree 4 files changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -48,6 +48,9 @@ nanoid = "0.4.0"
48
48
rand = " 0.9.0"
49
49
test-log = " 0.2.16"
50
50
51
+ # half 2.5.0 has MSRV 1.81
52
+ half = " =2.4.0"
53
+
51
54
[package .metadata .cargo-all-features ]
52
55
denylist = []
53
56
Original file line number Diff line number Diff line change @@ -101,6 +101,11 @@ pub trait AbstractTree {
101
101
/// Returns the amount of disk segments currently in the tree.
102
102
fn segment_count ( & self ) -> usize ;
103
103
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
+
104
109
/// Returns the amount of blob files currently in the tree.
105
110
fn blob_file_count ( & self ) -> usize {
106
111
0
Original file line number Diff line number Diff line change @@ -459,6 +459,10 @@ impl AbstractTree for BlobTree {
459
459
self . index . segment_count ( )
460
460
}
461
461
462
+ fn level_segment_count ( & self , idx : usize ) -> Option < usize > {
463
+ self . index . level_segment_count ( idx)
464
+ }
465
+
462
466
fn first_level_segment_count ( & self ) -> usize {
463
467
self . index . first_level_segment_count ( )
464
468
}
Original file line number Diff line number Diff line change @@ -271,6 +271,15 @@ impl AbstractTree for Tree {
271
271
self . levels . read ( ) . expect ( "lock is poisoned" ) . len ( )
272
272
}
273
273
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
+
274
283
fn first_level_segment_count ( & self ) -> usize {
275
284
self . levels
276
285
. read ( )
You can’t perform that action at this time.
0 commit comments