summaryrefslogtreecommitdiffstats
path: root/src/tree.rs
diff options
context:
space:
mode:
authorqkzk <qu3nt1n@gmail.com>2023-09-30 22:44:51 +0200
committerqkzk <qu3nt1n@gmail.com>2023-09-30 22:44:51 +0200
commitef928241cab78fa49ba76f76a692f79dc0751167 (patch)
treea2483521336793dcd9ccb4f0227c7badd84f5f2f /src/tree.rs
parent207346062c357938689efe3b2147b2615b6771c8 (diff)
tree: refactor and avoid usize::MAX since it's gigantic
Diffstat (limited to 'src/tree.rs')
-rw-r--r--src/tree.rs25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/tree.rs b/src/tree.rs
index 7993b7f..3e7d24c 100644
--- a/src/tree.rs
+++ b/src/tree.rs
@@ -104,6 +104,16 @@ impl Node {
folded: false,
})
}
+
+ fn empty(fileinfo: FileInfo) -> Self {
+ Self {
+ fileinfo,
+ position: vec![0],
+ folded: false,
+ is_dir: false,
+ metadata_line: "".to_owned(),
+ }
+ }
}
/// Holds a recursive view of a directory.
@@ -129,6 +139,10 @@ impl Tree {
pub const REQUIRED_HEIGHT: usize = 80;
const MAX_INDEX: usize = 2 << 20;
+ pub fn set_required_height_to_max(&mut self) {
+ self.set_required_height(Self::MAX_INDEX)
+ }
+
/// Set the required height to a given value.
/// The required height is used to stop filling the view content.
pub fn set_required_height(&mut self, height: usize) {
@@ -298,24 +312,19 @@ impl Tree {
pub fn empty(path: &Path, users_cache: &UsersCache) -> Result<Self> {
let filename = filename_from_path(path)?;
let fileinfo = FileInfo::from_path_with_name(path, filename, users_cache)?;
- let node = Node {
- fileinfo,
- position: vec![0],
- folded: false,
- is_dir: false,
- metadata_line: "".to_owned(),
- };
+ let node = Node::empty(fileinfo);
let leaves = vec![];
let position = vec![0];
let current_node = node.clone();
let sort_kind = SortKind::tree_default();
+ let required_height = 0;
Ok(Self {
node,
leaves,
position,
current_node,
sort_kind,
- required_height: 0,
+ required_height,
})
}