group alt options

This commit is contained in:
yggverse 2025-06-25 12:52:03 +03:00
parent 9b8485c494
commit 44a1f7bdec
2 changed files with 34 additions and 22 deletions

View file

@ -166,16 +166,16 @@ impl Storage {
r.push({ r.push({
let mut l = format!("=> {}/", encode(&dir.name)); // link let mut l = format!("=> {}/", encode(&dir.name)); // link
let mut a = Vec::new(); // alt let mut a = Vec::new(); // alt
if dc.is_count { if dc.alt.is_count {
a.push(dir.count.to_string()); a.push(dir.count.to_string());
} }
if dc.time.is_accessed { if dc.alt.time.is_accessed {
a.push(self.t(dir.meta.atime())) a.push(self.t(dir.meta.atime()))
} }
if dc.time.is_created { if dc.alt.time.is_created {
a.push(self.t(dir.meta.ctime())) a.push(self.t(dir.meta.ctime()))
} }
if dc.time.is_modified { if dc.alt.time.is_modified {
a.push(self.t(dir.meta.mtime())) a.push(self.t(dir.meta.mtime()))
} }
// @TODO modified, accessed, created etc. // @TODO modified, accessed, created etc.
@ -207,16 +207,16 @@ impl Storage {
r.push({ r.push({
let mut l = format!("=> {}", encode(&file.name)); // link let mut l = format!("=> {}", encode(&file.name)); // link
let mut a = Vec::new(); // alt let mut a = Vec::new(); // alt
if fc.is_size { if fc.alt.is_size {
a.push(b(file.meta.size())) a.push(b(file.meta.size()))
} }
if fc.time.is_accessed { if fc.alt.time.is_accessed {
a.push(self.t(file.meta.atime())) a.push(self.t(file.meta.atime()))
} }
if fc.time.is_created { if fc.alt.time.is_created {
a.push(self.t(file.meta.ctime())) a.push(self.t(file.meta.ctime()))
} }
if fc.time.is_modified { if fc.alt.time.is_modified {
a.push(self.t(file.meta.mtime())) a.push(self.t(file.meta.mtime()))
} }
if !a.is_empty() { if !a.is_empty() {

View file

@ -4,27 +4,35 @@ pub struct Time {
pub is_modified: bool, pub is_modified: bool,
} }
pub struct DirAlt {
pub time: Time,
pub is_count: bool,
}
pub struct DirSort { pub struct DirSort {
pub time: Time, pub time: Time,
pub is_count: bool, pub is_count: bool,
} }
pub struct FileAlt {
pub time: Time,
pub is_size: bool,
}
pub struct FileSort { pub struct FileSort {
pub time: Time, pub time: Time,
pub is_size: bool, pub is_size: bool,
} }
pub struct Dir { pub struct Dir {
pub is_count: bool, pub alt: DirAlt,
pub is_reverse: bool, pub is_reverse: bool,
pub sort: DirSort, pub sort: DirSort,
pub time: Time,
} }
pub struct File { pub struct File {
pub alt: FileAlt,
pub is_reverse: bool, pub is_reverse: bool,
pub is_size: bool,
pub sort: FileSort, pub sort: FileSort,
pub time: Time,
} }
pub struct ListConfig { pub struct ListConfig {
@ -63,12 +71,14 @@ impl ListConfig {
} }
Ok(Self { Ok(Self {
dir: Dir { dir: Dir {
time: Time { alt: DirAlt {
is_accessed: config.list_dir_accessed, time: Time {
is_created: config.list_dir_created, is_accessed: config.list_dir_accessed,
is_modified: config.list_dir_modified, is_created: config.list_dir_created,
is_modified: config.list_dir_modified,
},
is_count: config.list_dir_count,
}, },
is_count: config.list_dir_count,
is_reverse: config.list_dir_reverse, is_reverse: config.list_dir_reverse,
sort: DirSort { sort: DirSort {
time: Time { time: Time {
@ -80,13 +90,15 @@ impl ListConfig {
}, },
}, },
file: File { file: File {
time: Time { alt: FileAlt {
is_accessed: config.list_file_accessed, time: Time {
is_created: config.list_file_created, is_accessed: config.list_file_accessed,
is_modified: config.list_file_modified, is_created: config.list_file_created,
is_modified: config.list_file_modified,
},
is_size: config.list_file_size,
}, },
is_reverse: config.list_file_reverse, is_reverse: config.list_file_reverse,
is_size: config.list_file_size,
sort: FileSort { sort: FileSort {
time: Time { time: Time {
is_accessed: config.list_file_sort_accessed, is_accessed: config.list_file_sort_accessed,