diff options
Diffstat (limited to 'packages/svgbob/src/buffer/cell_buffer/span.rs')
-rw-r--r-- | packages/svgbob/src/buffer/cell_buffer/span.rs | 11 |
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 } |