diff --git a/src/detection/mod.rs b/src/detection/mod.rs index ad6601e..27fbd76 100644 --- a/src/detection/mod.rs +++ b/src/detection/mod.rs @@ -6,3 +6,26 @@ pub struct FileType { pub mime: String, pub file_type: String, } + + +/// Initializes a FileType given a filetype passed. +pub fn init_filetype(filetype: &str) -> Result { + if filetype == song::constants::FLAC_TYPE { + Ok(FileType { + mime: String::from(song::constants::mime::FLAC), + file_type: String::from(song::constants::FLAC_TYPE), + }) + } else if filetype == coverart::constants::PNG_TYPE { + Ok(FileType { + mime: String::from(coverart::constants::mime::PNG), + file_type: String::from(coverart::constants::PNG_TYPE), + }) + } else if filetype == coverart::constants::JPEG_TYPE || filetype == coverart::constants::JPG_TYPE { + Ok(FileType { + mime: String::from(coverart::constants::mime::JPEG), + file_type: String::from(coverart::constants::JPEG_TYPE), + }) + } else { + Err(std::io::Error::other(format!("Unsupported FileType: {filetype:?}"))) + } +}