summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSebastian Thiel <sthiel@thoughtworks.com>2019-06-05 08:13:16 +0530
committerSebastian Thiel <sthiel@thoughtworks.com>2019-06-05 08:13:16 +0530
commit50438ef584d5f2ade0a0501ebca151c99893580f (patch)
tree1f65c4058681a21f76298bfefc65cb5b86ea48cd /src
parentb0a02d30f97d15e0c6fc19e5f4f7b8c56500ff7a (diff)
move sorted_entries closer to where it is used
Diffstat (limited to 'src')
-rw-r--r--src/common.rs39
-rw-r--r--src/interactive/app/common.rs40
-rw-r--r--src/interactive/app/eventloop.rs (renamed from src/interactive/app.rs)10
-rw-r--r--src/interactive/app/mod.rs5
-rw-r--r--src/interactive/widgets/entries.rs9
5 files changed, 55 insertions, 48 deletions
diff --git a/src/common.rs b/src/common.rs
index 2e25e9e..f9fda92 100644
--- a/src/common.rs
+++ b/src/common.rs
@@ -1,32 +1,8 @@
use crate::traverse::{EntryData, Tree, TreeIndex};
use byte_unit::{n_gb_bytes, n_gib_bytes, n_mb_bytes, n_mib_bytes, ByteUnit};
-use itertools::Itertools;
use jwalk::WalkDir;
-use petgraph::Direction;
use std::{fmt, path::Path, path::PathBuf};
-#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Eq)]
-pub enum SortMode {
- SizeDescending,
- SizeAscending,
-}
-
-impl SortMode {
- pub fn toggle_size(&mut self) {
- use SortMode::*;
- *self = match self {
- SizeAscending => SizeDescending,
- SizeDescending => SizeAscending,
- }
- }
-}
-
-impl Default for SortMode {
- fn default() -> Self {
- SortMode::SizeDescending
- }
-}
-
pub fn path_of(tree: &Tree, mut node_idx: TreeIndex) -> PathBuf {
const THE_ROOT: usize = 1;
let mut entries = Vec::new();
@@ -55,21 +31,6 @@ pub(crate) fn get_size_or_panic(tree: &Tree, node_idx: TreeIndex) -> u64 {
get_entry_or_panic(tree, node_idx).size
}
-pub fn sorted_entries(
- tree: &Tree,
- node_idx: TreeIndex,
- sorting: SortMode,
-) -> Vec<(TreeIndex, &EntryData)> {
- use SortMode::*;
- tree.neighbors_directed(node_idx, Direction::Outgoing)
- .filter_map(|idx| tree.node_weight(idx).map(|w| (idx, w)))
- .sorted_by(|(_, l), (_, r)| match sorting {
- SizeDescending => r.size.cmp(&l.size),
- SizeAscending => l.size.cmp(&r.size),
- })
- .collect()
-}
-
/// Specifies a way to format bytes
#[derive(Clone, Copy)]
pub enum ByteFormat {
diff --git a/src/interactive/app/common.rs b/src/interactive/app/common.rs
new file mode 100644
index 0000000..10d9f11
--- /dev/null
+++ b/src/interactive/app/common.rs
@@ -0,0 +1,40 @@
+use dua::traverse::{EntryData, Tree, TreeIndex};
+use itertools::Itertools;
+use petgraph::Direction;
+
+#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Eq)]
+pub enum SortMode {
+ SizeDescending,
+ SizeAscending,
+}
+
+impl SortMode {
+ pub fn toggle_size(&mut self) {
+ use SortMode::*;
+ *self = match self {
+ SizeAscending => SizeDescending,
+ SizeDescending => SizeAscending,
+ }
+ }
+}
+
+impl Default for SortMode {
+ fn default() -> Self {
+ SortMode::SizeDescending
+ }
+}
+
+pub fn sorted_entries(
+ tree: &Tree,
+ node_idx: TreeIndex,
+ sorting: SortMode,
+) -> Vec<(TreeIndex, &EntryData)> {
+ use SortMode::*;
+ tree.neighbors_directed(node_idx, Direction::Outgoing)
+ .filter_map(|idx| tree.node_weight(idx).map(|w| (idx, w)))
+ .sorted_by(|(_, l), (_, r)| match sorting {
+ SizeDescending => r.size.cmp(&l.size),
+ SizeAscending => l.size.cmp(&r.size),
+ })
+ .collect()
+}
diff --git a/src/interactive/app.rs b/src/interactive/app/eventloop.rs
index b939074..c05ca02 100644
--- a/src/interactive/app.rs
+++ b/src/interactive/app/eventloop.rs
@@ -1,11 +1,15 @@
use crate::{
- interactive::widgets::{DrawState, HelpPaneState, MainWindow},
+ interactive::{
+ sorted_entries,
+ widgets::{DrawState, HelpPaneState, MainWindow},
+ SortMode,
+ },
ByteFormat,
};
use dua::{
- path_of, sorted_entries,
+ path_of,
traverse::{Traversal, TreeIndex},
- SortMode, WalkOptions, WalkResult,
+ WalkOptions, WalkResult,
};
use failure::Error;
use itertools::Itertools;
diff --git a/src/interactive/app/mod.rs b/src/interactive/app/mod.rs
new file mode 100644
index 0000000..912120e
--- /dev/null
+++ b/src/interactive/app/mod.rs
@@ -0,0 +1,5 @@
+mod common;
+mod eventloop;
+
+pub use common::*;
+pub use eventloop::*;
diff --git a/src/interactive/widgets/entries.rs b/src/interactive/widgets/entries.rs
index 25c7194..d420f71 100644
--- a/src/interactive/widgets/entries.rs
+++ b/src/interactive/widgets/entries.rs
@@ -1,12 +1,9 @@
use crate::interactive::{
- widgets::{fill_background_to_right, List, ListState},
- DisplayOptions,
-};
-use dua::{
sorted_entries,
- traverse::{Tree, TreeIndex},
- SortMode,
+ widgets::{fill_background_to_right, List, ListState},
+ DisplayOptions, SortMode,
};
+use dua::traverse::{Tree, TreeIndex};
use itertools::Itertools;
use std::path::Path;
use tui::{