use std::path::PathBuf;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum SortMode {
#[default]
Name,
SizeDesc,
Extension,
}
impl SortMode {
pub fn next(self) -> Self {
match self {
Self::Name => Self::SizeDesc,
Self::SizeDesc => Self::Extension,
Self::Extension => Self::Name,
}
}
pub fn label(self) -> &'static str {
match self {
Self::Name => "name",
Self::SizeDesc => "size ↓",
Self::Extension => "ext",
}
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct FsEntry {
pub name: String,
pub path: PathBuf,
pub is_dir: bool,
pub size: Option<u64>,
pub extension: String,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ExplorerOutcome {
Selected(PathBuf),
Dismissed,
Pending,
Unhandled,
}