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}