Sort deletes first

This commit is contained in:
Andras Schmelczer 2025-06-21 13:18:13 +01:00
parent 5afb2c21f8
commit 7589e1bf2e
No known key found for this signature in database
GPG key ID: FC8F2C3D3D1A718C
2 changed files with 11 additions and 11 deletions

View file

@ -1,5 +1,5 @@
---
source: reconcile/src/operation_transformation/edited_text.rs
source: src/operation_transformation/edited_text.rs
expression: operations
snapshot_kind: text
---
@ -8,11 +8,11 @@ EditedText {
operations: [
OrderedOperation {
order: 0,
operation: <insert 'Hello, my friend!' from index 0>,
operation: <delete 'hello world!' from index 0>,
},
OrderedOperation {
order: 0,
operation: <delete 'hello world!' from index 17>,
order: 12,
operation: <insert 'Hello, my friend!' from index 0>,
},
OrderedOperation {
order: 12,
@ -32,11 +32,11 @@ EditedText {
},
OrderedOperation {
order: 20,
operation: <insert ' you doing? Albert' from index 25>,
operation: <delete ' you? Adam' from index 25>,
},
OrderedOperation {
order: 20,
operation: <delete ' you? Adam' from index 43>,
order: 31,
operation: <insert ' you doing? Albert' from index 25>,
},
],
cursors: [],

View file

@ -41,20 +41,20 @@ where
}
},
RawOperation::Equal(..) => Box::new(
maybe_previous_insert
maybe_previous_delete
.take()
.into_iter()
.chain(maybe_previous_delete.take())
.chain(maybe_previous_insert.take())
.chain(iter::once(next)),
) as Box<dyn Iterator<Item = RawOperation<T>>>,
})
.collect();
if let Some(prev) = maybe_previous_insert {
if let Some(prev) = maybe_previous_delete {
result.push(prev);
}
if let Some(prev) = maybe_previous_delete {
if let Some(prev) = maybe_previous_insert {
result.push(prev);
}