34 lines
876 B
Rust
34 lines
876 B
Rust
use clap::Clap;
|
|
|
|
#[derive(Clap, PartialEq, Debug)]
|
|
pub enum ExtensionSet {
|
|
Images,
|
|
Audio,
|
|
Videos,
|
|
Media,
|
|
Documents,
|
|
Archives,
|
|
}
|
|
|
|
impl ExtensionSet {
|
|
pub fn extensions(&self) -> Vec<&str> {
|
|
match self {
|
|
Self::Images => vec![
|
|
"png", "jpg", "jpeg", "webp", "raw", "gif", "apng", "tga", "bmp", "tif", "tiff", "heif", "avif", "jp2", "mng",
|
|
"svg",
|
|
],
|
|
Self::Videos => vec![
|
|
"webm", "mp4", "mkv", "mov", "avi", "m4v", "wmv", "bik", "ogv", "qt", "3gp", "3g2", "divx",
|
|
],
|
|
Self::Audio => vec![
|
|
"ogg", "oga", "opus", "mp3", "m4a", "aac", "flac", "ape", "midi", "mid", "alac", "wav", "aiff", "aa3", "at3",
|
|
],
|
|
Self::Documents => vec![
|
|
"doc", "docx", "ppt", "pptx", "xls", "xlsx", "csv", "tsv", "pdf", "odt", "ods", "odp",
|
|
],
|
|
Self::Archives => vec!["zip", "tar", "gz", "zst", "xz", "rar", "7z", "bz", "bz2"],
|
|
_ => todo!(),
|
|
}
|
|
}
|
|
}
|