Radish alpha
r
rad:z39mP9rQAaGmERfUMPULfPUi473tY
Radicle terminal user interface
Radicle
Git
ui/utils: Optimize LineMerger::merge() impl for allocations
Matthias Beyer committed 4 months ago
commit 42284dc7d18a46378d7175b561e132986ba7fe1d
parent 2f4576c
1 file changed +8 -7
modified src/ui/utils.rs
@@ -48,13 +48,14 @@ impl<T: Clone> LineMerger<T> {
                merged.push(line.clone());
            }

-
            if let Some(merges) = merge.get(&location) {
-
                for merge in merges {
-
                    for line in merge {
-
                        merged.push(line.clone());
-
                    }
-
                }
-
            }
+
            merged.extend(
+
                merge
+
                    .get(&location)
+
                    .into_iter()
+
                    .flatten()
+
                    .flat_map(|merge| merge.iter())
+
                    .cloned(),
+
            );

            if location == MergeLocation::Start {
                merged.push(line.clone());