summaryrefslogtreecommitdiffstats
path: root/packages/svgbob/src/buffer/cell_buffer/span.rs
diff options
context:
space:
mode:
Diffstat (limited to 'packages/svgbob/src/buffer/cell_buffer/span.rs')
-rw-r--r--packages/svgbob/src/buffer/cell_buffer/span.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/packages/svgbob/src/buffer/cell_buffer/span.rs b/packages/svgbob/src/buffer/cell_buffer/span.rs
index 28246c7..42c5f25 100644
--- a/packages/svgbob/src/buffer/cell_buffer/span.rs
+++ b/packages/svgbob/src/buffer/cell_buffer/span.rs
@@ -190,14 +190,19 @@ impl Span {
pub fn hit_cell(&self, needle: Cell) -> bool {
self.iter().any(|(cell, ch)| *cell == needle)
}
+
+ /// merge as is without checking it it can
+ pub fn merge_no_check(&self, other: &Self) -> Self {
+ let mut cells = self.0.clone();
+ cells.extend(&other.0);
+ Span(cells)
+ }
}
impl Merge for Span {
fn merge(&self, other: &Self) -> Option<Self> {
if self.can_merge(other) {
- let mut cells = self.0.clone();
- cells.extend(&other.0);
- Some(Span(cells))
+ Some(self.merge_no_check(other))
} else {
None
}