fix: insert() | delete() would calculate the new insert incorrectly

Refs #386
This commit is contained in:
Blaž Hrastnik 2021-06-28 17:47:23 +09:00
parent d4e1ec339e
commit ca98210d20

View File

@ -193,9 +193,10 @@ pub fn compose(self, other: Self) -> Self {
head_b = changes_b.next();
}
Ordering::Greater => {
// TODO: cover this with a test
// figure out the byte index of the truncated string end
let (pos, _) = s.char_indices().nth(len - j).unwrap();
s.pop_front(s.len() as u32 - pos as u32);
s.pop_front(pos as u32);
head_a = Some(Insert(s));
head_b = changes_b.next();
}