diff --git a/seaweed-volume/src/storage/types.rs b/seaweed-volume/src/storage/types.rs index 0d2cd6e93..157f44c68 100644 --- a/seaweed-volume/src/storage/types.rs +++ b/seaweed-volume/src/storage/types.rs @@ -176,7 +176,7 @@ impl From for i32 { /// [b3][b2][b1][b0] (big-endian 4 bytes) /// /// actual_offset = stored_value * 8 -#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] pub struct Offset { pub b0: u8, pub b1: u8, diff --git a/seaweed-volume/src/storage/volume.rs b/seaweed-volume/src/storage/volume.rs index 086c51130..2b1ad1aec 100644 --- a/seaweed-volume/src/storage/volume.rs +++ b/seaweed-volume/src/storage/volume.rs @@ -1649,7 +1649,7 @@ impl Volume { } entries.push((id, nv.offset, nv.size)); } - entries.sort_by_key(|(id, _, _)| *id); + entries.sort_by_key(|(_, offset, _)| *offset); for (id, offset, size) in entries { // Progress callback