Remove start_index from sorting

This commit is contained in:
Andras Schmelczer 2025-06-22 09:48:26 +01:00
commit 46d2e0c485
No known key found for this signature in database
GPG key ID: FC8F2C3D3D1A718C
2 changed files with 7 additions and 12 deletions

View file

@ -123,7 +123,11 @@ where
let (side, OrderedOperation { operation, order }, maybe_other_operation) = let (side, OrderedOperation { operation, order }, maybe_other_operation) =
match (maybe_left_op.clone(), maybe_right_op.clone()) { match (maybe_left_op.clone(), maybe_right_op.clone()) {
(Some(left_op), Some(right_op)) => { (Some(left_op), Some(right_op)) => {
if left_op < right_op { if left_op
.get_sort_key(seen_left_length)
.partial_cmp(&right_op.get_sort_key(seen_right_length))
== Some(std::cmp::Ordering::Less)
{
(Side::Left, left_op, maybe_right_op.clone()) (Side::Left, left_op, maybe_right_op.clone())
} else { } else {
(Side::Right, right_op, maybe_left_op.clone()) (Side::Right, right_op, maybe_left_op.clone())

View file

@ -17,7 +17,7 @@ impl<T> OrderedOperation<T>
where where
T: PartialEq + Clone + std::fmt::Debug, T: PartialEq + Clone + std::fmt::Debug,
{ {
pub fn get_sort_key(&self) -> (usize, usize, usize, String) { pub fn get_sort_key(&self, insertion_index: usize) -> (usize, usize, usize, String) {
( (
self.order, self.order,
match &self.operation { match &self.operation {
@ -25,7 +25,7 @@ where
Operation::Insert { .. } => 2, Operation::Insert { .. } => 2,
Operation::Equal { .. } => 3, Operation::Equal { .. } => 3,
}, },
self.operation.start_index(), insertion_index,
// Make sure that the ordering is deterministic regardless of which text // Make sure that the ordering is deterministic regardless of which text
// is left or right. // is left or right.
match &self.operation { match &self.operation {
@ -41,12 +41,3 @@ where
) )
} }
} }
impl<T> PartialOrd for OrderedOperation<T>
where
T: PartialEq + Clone + std::fmt::Debug,
{
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
self.get_sort_key().partial_cmp(&other.get_sort_key())
}
}