len(self)>=1, from="", len(to)>=1, max_count>=1
(&self, to: Self, max_count: Option<usize>)
| 753 | |
| 754 | // len(self)>=1, from="", len(to)>=1, max_count>=1 |
| 755 | fn replace_interleave(&self, to: Self, max_count: Option<usize>) -> Vec<u8> { |
| 756 | let place_count = self.elements.len() + 1; |
| 757 | let count = max_count.map_or(place_count, |v| core::cmp::min(v, place_count)) - 1; |
| 758 | let capacity = self.elements.len() + count * to.len(); |
| 759 | let mut result = Vec::with_capacity(capacity); |
| 760 | let to_slice = to.elements.as_slice(); |
| 761 | result.extend_from_slice(to_slice); |
| 762 | for c in &self.elements[..count] { |
| 763 | result.push(*c); |
| 764 | result.extend_from_slice(to_slice); |
| 765 | } |
| 766 | result.extend_from_slice(&self.elements[count..]); |
| 767 | result |
| 768 | } |
| 769 | |
| 770 | fn replace_delete(&self, from: Self, max_count: Option<usize>) -> Vec<u8> { |
| 771 | let count = count_substring( |