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

Skip to content

Commit 80f01db

Browse files
author
Sebastian Thiel
committed
Moved 'interactive' portion of code into binary - break unit tests for now
1 parent c7ee6b5 commit 80f01db

7 files changed

Lines changed: 47 additions & 53 deletions

File tree

src/common.rs

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,33 @@
1-
use crate::{
2-
interactive::SortMode,
3-
traverse::{EntryData, Tree, TreeIndex},
4-
};
1+
use crate::traverse::{EntryData, Tree, TreeIndex};
52
use byte_unit::{n_gb_bytes, n_gib_bytes, n_mb_bytes, n_mib_bytes, ByteUnit};
63
use itertools::Itertools;
74
use jwalk::WalkDir;
85
use petgraph::Direction;
96
use std::{fmt, path::Path, path::PathBuf};
107

11-
pub(crate) fn path_of(tree: &Tree, mut node_idx: TreeIndex) -> PathBuf {
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+
30+
pub fn path_of(tree: &Tree, mut node_idx: TreeIndex) -> PathBuf {
1231
const THE_ROOT: usize = 1;
1332
let mut entries = Vec::new();
1433

@@ -36,7 +55,7 @@ pub(crate) fn get_size_or_panic(tree: &Tree, node_idx: TreeIndex) -> u64 {
3655
get_entry_or_panic(tree, node_idx).size
3756
}
3857

39-
pub(crate) fn sorted_entries(
58+
pub fn sorted_entries(
4059
tree: &Tree,
4160
node_idx: TreeIndex,
4261
sorting: SortMode,

src/interactive/app.rs

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
use crate::{
22
interactive::widgets::{DrawState, HelpPaneState, MainWindow},
3+
ByteFormat,
4+
};
5+
use dua::{
36
path_of, sorted_entries,
47
traverse::{Traversal, TreeIndex},
5-
ByteFormat, WalkOptions, WalkResult,
8+
SortMode, WalkOptions, WalkResult,
69
};
710
use failure::Error;
811
use itertools::Itertools;
@@ -11,28 +14,6 @@ use std::{fmt, io, path::PathBuf};
1114
use termion::input::{Keys, TermReadEventsAndRaw};
1215
use tui::{backend::Backend, widgets::Widget, Terminal};
1316

14-
#[derive(Debug, Copy, Clone, PartialOrd, PartialEq, Eq)]
15-
pub enum SortMode {
16-
SizeDescending,
17-
SizeAscending,
18-
}
19-
20-
impl SortMode {
21-
pub fn toggle_size(&mut self) {
22-
use SortMode::*;
23-
*self = match self {
24-
SizeAscending => SizeDescending,
25-
SizeDescending => SizeAscending,
26-
}
27-
}
28-
}
29-
30-
impl Default for SortMode {
31-
fn default() -> Self {
32-
SortMode::SizeDescending
33-
}
34-
}
35-
3617
#[derive(Clone, Copy)]
3718
pub enum ByteVisualization {
3819
Percentage,

src/interactive/widgets/entries.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
use crate::{
2-
interactive::{
3-
widgets::{fill_background_to_right, List, ListState},
4-
DisplayOptions, SortMode,
5-
},
1+
use crate::interactive::{
2+
widgets::{fill_background_to_right, List, ListState},
3+
DisplayOptions,
4+
};
5+
use dua::{
66
sorted_entries,
77
traverse::{Tree, TreeIndex},
8+
SortMode,
89
};
910
use itertools::Itertools;
1011
use std::path::Path;
@@ -43,7 +44,7 @@ impl<'a, 'b> Widget for Entries<'a, 'b> {
4344
.next()
4445
.is_none()
4546
};
46-
let path_of = |node_idx| crate::common::path_of(tree, node_idx);
47+
let path_of = |node_idx| dua::path_of(tree, node_idx);
4748

4849
let entries = sorted_entries(tree, *root, *sorting);
4950
let total: u64 = entries.iter().map(|(_, w)| w.size).sum();

src/interactive/widgets/main.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
use crate::{
2-
interactive::{
3-
widgets::{Entries, Footer, Header, HelpPane, ListState},
4-
AppState, DisplayOptions, FocussedPane,
5-
},
6-
traverse::Traversal,
1+
use crate::interactive::{
2+
widgets::{Entries, Footer, Header, HelpPane, ListState},
3+
AppState, DisplayOptions, FocussedPane,
74
};
5+
use dua::traverse::Traversal;
86
use tui::style::{Color, Style};
97
use tui::{
108
buffer::Buffer,

src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ extern crate jwalk;
44
mod aggregate;
55
mod common;
66

7-
pub mod interactive;
87
pub mod traverse;
98

109
pub use aggregate::aggregate;

src/main.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@ extern crate failure;
22
extern crate failure_tools;
33
extern crate structopt;
44

5-
use structopt::StructOpt;
6-
5+
use crate::interactive::TerminalApp;
76
use dua::{ByteFormat, Color, TraversalSorting};
87
use failure::{Error, ResultExt};
98
use failure_tools::ok_or_exit;
109
use std::{fs, io, io::Write, path::PathBuf, process};
11-
use termion::input::TermRead;
12-
use termion::{raw::IntoRawMode, screen::AlternateScreen};
10+
use structopt::StructOpt;
11+
use termion::{input::TermRead, raw::IntoRawMode, screen::AlternateScreen};
1312
use tui::{backend::TermionBackend, Terminal};
1413

14+
mod interactive;
1515
mod options;
1616

1717
fn run() -> Result<(), Error> {
@@ -39,11 +39,7 @@ fn run() -> Result<(), Error> {
3939
Terminal::new(backend)
4040
.with_context(|_| "Interactive mode requires a connected terminal")?
4141
};
42-
let mut app = dua::interactive::TerminalApp::initialize(
43-
&mut terminal,
44-
walk_options,
45-
paths_from(input)?,
46-
)?;
42+
let mut app = TerminalApp::initialize(&mut terminal, walk_options, paths_from(input)?)?;
4743
app.process_events(&mut terminal, io::stdin().keys())?
4844
}
4945
Some(Aggregate {

tests/interactive.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
mod app {
22
use dua::{
3-
interactive::{SortMode, TerminalApp},
3+
interactive::TerminalApp,
44
traverse::{EntryData, Tree, TreeIndex},
5-
ByteFormat, Color, TraversalSorting, WalkOptions,
5+
ByteFormat, Color, SortMode, TraversalSorting, WalkOptions,
66
};
77
use failure::Error;
88
use petgraph::prelude::NodeIndex;

0 commit comments

Comments
 (0)