Merge `FoldRange` into `Fold`

Antonio Scandurra and Nathan Sobo created

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Change summary

zed/src/editor/display_map/fold_map.rs | 26 ++++++++++----------------
1 file changed, 10 insertions(+), 16 deletions(-)

Detailed changes

zed/src/editor/display_map/fold_map.rs 🔗

@@ -109,10 +109,7 @@ impl FoldMap {
             self.folds = {
                 let mut new_tree = SumTree::new();
                 let mut cursor = self.folds.cursor::<_, ()>();
-                new_tree.push_tree(
-                    cursor.slice(&FoldRange(fold.0.clone()), SeekBias::Right, buffer),
-                    buffer,
-                );
+                new_tree.push_tree(cursor.slice(&fold, SeekBias::Right, buffer), buffer);
                 new_tree.push(fold, buffer);
                 new_tree.push_tree(cursor.suffix(buffer), buffer);
                 new_tree
@@ -298,7 +295,7 @@ impl FoldMap {
 
             let anchor = buffer.anchor_before(edit.new_range.start).unwrap();
             let mut folds_cursor = self.folds.cursor::<_, ()>();
-            folds_cursor.seek(&FoldRange(anchor..Anchor::End), SeekBias::Left, buffer);
+            folds_cursor.seek(&Fold(anchor..Anchor::End), SeekBias::Left, buffer);
             let mut folds = folds_cursor
                 .map(|f| f.0.start.to_offset(buffer).unwrap()..f.0.end.to_offset(buffer).unwrap())
                 .peekable();
@@ -482,6 +479,12 @@ impl<'a> sum_tree::Dimension<'a, TransformSummary> for TransformSummary {
 #[derive(Clone, Debug)]
 struct Fold(Range<Anchor>);
 
+impl Default for Fold {
+    fn default() -> Self {
+        Self(Anchor::Start..Anchor::End)
+    }
+}
+
 impl sum_tree::Item for Fold {
     type Summary = FoldSummary;
 
@@ -542,23 +545,14 @@ impl sum_tree::Summary for FoldSummary {
     }
 }
 
-#[derive(Clone, Debug)]
-struct FoldRange(Range<Anchor>);
-
-impl Default for FoldRange {
-    fn default() -> Self {
-        Self(Anchor::Start..Anchor::End)
-    }
-}
-
-impl<'a> sum_tree::Dimension<'a, FoldSummary> for FoldRange {
+impl<'a> sum_tree::Dimension<'a, FoldSummary> for Fold {
     fn add_summary(&mut self, summary: &'a FoldSummary) {
         self.0.start = summary.start.clone();
         self.0.end = summary.end.clone();
     }
 }
 
-impl<'a> sum_tree::SeekDimension<'a, FoldSummary> for FoldRange {
+impl<'a> sum_tree::SeekDimension<'a, FoldSummary> for Fold {
     fn cmp(&self, other: &Self, buffer: &Buffer) -> Ordering {
         self.0.cmp(&other.0, buffer).unwrap()
     }