jwalk/core/
ordered.rs

1use std::cmp::Ordering;
2
3use super::index_path::IndexPath;
4
5pub struct Ordered<T> {
6    pub value: T,
7    pub index_path: IndexPath,
8    pub(crate) child_count: usize,
9}
10
11impl<T> Ordered<T> {
12    pub fn new(value: T, index_path: IndexPath, child_count: usize) -> Ordered<T> {
13        Ordered {
14            value,
15            index_path,
16            child_count,
17        }
18    }
19}
20
21impl<T> PartialEq for Ordered<T> {
22    fn eq(&self, o: &Self) -> bool {
23        self.index_path.eq(&o.index_path)
24    }
25}
26
27impl<T> Eq for Ordered<T> {}
28
29impl<T> PartialOrd for Ordered<T> {
30    fn partial_cmp(&self, o: &Self) -> Option<Ordering> {
31        self.index_path.partial_cmp(&o.index_path)
32    }
33}
34
35impl<T> Ord for Ordered<T> {
36    fn cmp(&self, o: &Self) -> Ordering {
37        self.index_path.cmp(&o.index_path)
38    }
39}