Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 50438ef

Browse files
author
Sebastian Thiel
committed
move sorted_entries closer to where it is used
1 parent b0a02d3 commit 50438ef

5 files changed

Lines changed: 55 additions & 48 deletions

File tree

src/common.rs

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,8 @@
11
use crate::traverse::{EntryData, Tree, TreeIndex};
22
use byte_unit::{n_gb_bytes, n_gib_bytes, n_mb_bytes, n_mib_bytes, ByteUnit};
3-
use itertools::Itertools;
43
use jwalk::WalkDir;
5-
use petgraph::Direction;
64
use std::{fmt, path::Path, path::PathBuf};
75

8-
#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Eq)]
9-
pub enum SortMode {
10-
SizeDescending,
11-
SizeAscending,
12-
}
13-
14-
impl SortMode {
15-
pub fn toggle_size(&mut self) {
16-
use SortMode::*;
17-
*self = match self {
18-
SizeAscending => SizeDescending,
19-
SizeDescending => SizeAscending,
20-
}
21-
}
22-
}
23-
24-
impl Default for SortMode {
25-
fn default() -> Self {
26-
SortMode::SizeDescending
27-
}
28-
}
29-
306
pub fn path_of(tree: &Tree, mut node_idx: TreeIndex) -> PathBuf {
317
const THE_ROOT: usize = 1;
328
let mut entries = Vec::new();
@@ -55,21 +31,6 @@ pub(crate) fn get_size_or_panic(tree: &Tree, node_idx: TreeIndex) -> u64 {
5531
get_entry_or_panic(tree, node_idx).size
5632
}
5733

58-
pub fn sorted_entries(
59-
tree: &Tree,
60-
node_idx: TreeIndex,
61-
sorting: SortMode,
62-
) -> Vec<(TreeIndex, &EntryData)> {
63-
use SortMode::*;
64-
tree.neighbors_directed(node_idx, Direction::Outgoing)
65-
.filter_map(|idx| tree.node_weight(idx).map(|w| (idx, w)))
66-
.sorted_by(|(_, l), (_, r)| match sorting {
67-
SizeDescending => r.size.cmp(&l.size),
68-
SizeAscending => l.size.cmp(&r.size),
69-
})
70-
.collect()
71-
}
72-
7334
/// Specifies a way to format bytes
7435
#[derive(Clone, Copy)]
7536
pub enum ByteFormat {

src/interactive/app/common.rs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
use dua::traverse::{EntryData, Tree, TreeIndex};
2+
use itertools::Itertools;
3+
use petgraph::Direction;
4+
5+
#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Eq)]
6+
pub enum SortMode {
7+
SizeDescending,
8+
SizeAscending,
9+
}
10+
11+
impl SortMode {
12+
pub fn toggle_size(&mut self) {
13+
use SortMode::*;
14+
*self = match self {
15+
SizeAscending => SizeDescending,
16+
SizeDescending => SizeAscending,
17+
}
18+
}
19+
}
20+
21+
impl Default for SortMode {
22+
fn default() -> Self {
23+
SortMode::SizeDescending
24+
}
25+
}
26+
27+
pub fn sorted_entries(
28+
tree: &Tree,
29+
node_idx: TreeIndex,
30+
sorting: SortMode,
31+
) -> Vec<(TreeIndex, &EntryData)> {
32+
use SortMode::*;
33+
tree.neighbors_directed(node_idx, Direction::Outgoing)
34+
.filter_map(|idx| tree.node_weight(idx).map(|w| (idx, w)))
35+
.sorted_by(|(_, l), (_, r)| match sorting {
36+
SizeDescending => r.size.cmp(&l.size),
37+
SizeAscending => l.size.cmp(&r.size),
38+
})
39+
.collect()
40+
}
Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
use crate::{
2-
interactive::widgets::{DrawState, HelpPaneState, MainWindow},
2+
interactive::{
3+
sorted_entries,
4+
widgets::{DrawState, HelpPaneState, MainWindow},
5+
SortMode,
6+
},
37
ByteFormat,
48
};
59
use dua::{
6-
path_of, sorted_entries,
10+
path_of,
711
traverse::{Traversal, TreeIndex},
8-
SortMode, WalkOptions, WalkResult,
12+
WalkOptions, WalkResult,
913
};
1014
use failure::Error;
1115
use itertools::Itertools;

src/interactive/app/mod.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
mod common;
2+
mod eventloop;
3+
4+
pub use common::*;
5+
pub use eventloop::*;

src/interactive/widgets/entries.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
use crate::interactive::{
2-
widgets::{fill_background_to_right, List, ListState},
3-
DisplayOptions,
4-
};
5-
use dua::{
62
sorted_entries,
7-
traverse::{Tree, TreeIndex},
8-
SortMode,
3+
widgets::{fill_background_to_right, List, ListState},
4+
DisplayOptions, SortMode,
95
};
6+
use dua::traverse::{Tree, TreeIndex};
107
use itertools::Itertools;
118
use std::path::Path;
129
use tui::{

0 commit comments

Comments
 (0)