toolbox_rs/
merge_entry.rs

1use std::cmp::Ordering;
2
3#[derive(PartialEq, Eq, Clone, Debug)]
4pub struct MergeEntry<T> {
5    pub item: T,
6    pub index: usize,
7}
8
9impl<T: Ord> PartialOrd for MergeEntry<T> {
10    fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
11        Some(self.cmp(other))
12    }
13}
14
15impl<T: Ord> Ord for MergeEntry<T> {
16    fn cmp(&self, other: &Self) -> Ordering {
17        // reverse ordering for a min heap
18        other.item.cmp(&self.item)
19    }
20}
21
22#[cfg(test)]
23mod tests {
24    use super::*;
25
26    #[test]
27    fn test_ordering() {
28        let e1 = MergeEntry { item: 1, index: 0 };
29        let e2 = MergeEntry { item: 2, index: 1 };
30        assert!(e1 > e2); // Umgekehrte Ordnung für Min-Heap
31    }
32}