@@ -3,6 +3,7 @@ use std::{cmp::Ordering, ops::Range};
33use bstr:: { BStr , ByteSlice , ByteVec } ;
44use filetime:: FileTime ;
55
6+ use crate :: entry:: { Stage , StageRaw } ;
67use crate :: { entry, extension, AccelerateLookup , Entry , PathStorage , PathStorageRef , State , Version } ;
78
89// TODO: integrate this somehow, somewhere, depending on later usage.
@@ -81,7 +82,7 @@ impl State {
8182 res
8283 } )
8384 . ok ( ) ?;
84- self . entry_index_by_idx_and_stage ( path, idx, stage, stage_cmp)
85+ self . entry_index_by_idx_and_stage ( path, idx, stage as StageRaw , stage_cmp)
8586 }
8687
8788 /// Walk as far in `direction` as possible, with [`Ordering::Greater`] towards higher stages, and [`Ordering::Less`]
@@ -112,7 +113,7 @@ impl State {
112113 & self ,
113114 path : & BStr ,
114115 idx : usize ,
115- wanted_stage : entry:: Stage ,
116+ wanted_stage : entry:: StageRaw ,
116117 stage_cmp : Ordering ,
117118 ) -> Option < usize > {
118119 match stage_cmp {
@@ -121,15 +122,15 @@ impl State {
121122 . enumerate ( )
122123 . rev ( )
123124 . take_while ( |( _, e) | e. path ( self ) == path)
124- . find_map ( |( idx, e) | ( e. stage ( ) == wanted_stage) . then_some ( idx) ) ,
125+ . find_map ( |( idx, e) | ( e. stage_raw ( ) == wanted_stage) . then_some ( idx) ) ,
125126 Ordering :: Equal => Some ( idx) ,
126127 Ordering :: Less => self
127128 . entries
128129 . get ( idx + 1 ..) ?
129130 . iter ( )
130131 . enumerate ( )
131132 . take_while ( |( _, e) | e. path ( self ) == path)
132- . find_map ( |( ofs, e) | ( e. stage ( ) == wanted_stage) . then_some ( idx + ofs + 1 ) ) ,
133+ . find_map ( |( ofs, e) | ( e. stage_raw ( ) == wanted_stage) . then_some ( idx + ofs + 1 ) ) ,
133134 }
134135 }
135136
@@ -291,15 +292,15 @@ impl State {
291292 . binary_search_by ( |e| {
292293 let res = e. path ( self ) . cmp ( path) ;
293294 if res. is_eq ( ) {
294- stage_at_index = e. stage ( ) ;
295+ stage_at_index = e. stage_raw ( ) ;
295296 }
296297 res
297298 } )
298299 . ok ( ) ?;
299300 let idx = if stage_at_index == 0 || stage_at_index == 2 {
300301 idx
301302 } else {
302- self . entry_index_by_idx_and_stage ( path, idx, 2 , stage_at_index. cmp ( & 2 ) ) ?
303+ self . entry_index_by_idx_and_stage ( path, idx, Stage :: Ours as StageRaw , stage_at_index. cmp ( & 2 ) ) ?
303304 } ;
304305 Some ( & self . entries [ idx] )
305306 }
@@ -334,13 +335,13 @@ impl State {
334335 + self . entries [ low..] . partition_point ( |e| e. path ( self ) . get ( ..prefix_len) . map_or ( false , |p| p <= prefix) ) ;
335336
336337 let low_entry = & self . entries . get ( low) ?;
337- if low_entry. stage ( ) != 0 {
338+ if low_entry. stage_raw ( ) != 0 {
338339 low = self
339340 . walk_entry_stages ( low_entry. path ( self ) , low, Ordering :: Less )
340341 . unwrap_or ( low) ;
341342 }
342343 if let Some ( high_entry) = self . entries . get ( high) {
343- if high_entry. stage ( ) != 0 {
344+ if high_entry. stage_raw ( ) != 0 {
344345 high = self
345346 . walk_entry_stages ( high_entry. path ( self ) , high, Ordering :: Less )
346347 . unwrap_or ( high) ;
@@ -374,7 +375,7 @@ impl State {
374375 . binary_search_by ( |e| {
375376 let res = e. path ( self ) . cmp ( path) ;
376377 if res. is_eq ( ) {
377- stage_at_index = e. stage ( ) ;
378+ stage_at_index = e. stage_raw ( ) ;
378379 }
379380 res
380381 } )
0 commit comments