Skip to content

Commit

Permalink
Add ext functions to file types
Browse files Browse the repository at this point in the history
  • Loading branch information
giraffekey authored and Serial-ATA committed Feb 23, 2025
1 parent 59184c0 commit 1ba0b17
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 0 deletions.
27 changes: 27 additions & 0 deletions lofty/src/file/file_type.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,33 @@ impl FileType {
}
}

/// Returns the extension for the `FileType` if it is known
///
/// # Examples
///
/// ```rust
/// use lofty::file::FileType;
///
/// assert_eq!(FileType::Mpeg.ext(), Some("mp3"));
/// ```
pub fn ext(&self) -> Option<&str> {
match self {
FileType::Aac => Some("aac"),
FileType::Aiff => Some("aiff"),
FileType::Ape => Some("ape"),
FileType::Flac => Some("flac"),
FileType::Mpeg => Some("mp3"),
FileType::Mp4 => Some("mp4"),
FileType::Mpc => Some("mpc"),
FileType::Opus => Some("opus"),
FileType::Vorbis => Some("ogg"),
FileType::Speex => Some("spx"),
FileType::Wav => Some("wav"),
FileType::WavPack => Some("wv"),
FileType::Custom(_) => None,
}
}

/// Attempts to extract a [`FileType`] from an extension
///
/// # Examples
Expand Down
20 changes: 20 additions & 0 deletions lofty/src/picture.rs
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,26 @@ impl MimeType {
MimeType::Unknown(unknown) => unknown,
}
}

/// Returns the extension for the `MimeType` if it is known
///
/// # Examples
///
/// ```rust
/// use lofty::picture::MimeType;
///
/// assert_eq!(MimeType::Jpeg.ext(), Some("jpg"));
/// ```
pub fn ext(&self) -> Option<&str> {
match self {
MimeType::Jpeg => Some("jpg"),
MimeType::Png => Some("png"),
MimeType::Tiff => Some("tif"),
MimeType::Bmp => Some("bmp"),
MimeType::Gif => Some("gif"),
MimeType::Unknown(_) => None,
}
}
}

impl Display for MimeType {
Expand Down

0 comments on commit 1ba0b17

Please sign in to comment.