Added code to get tag info #10

Merged
phoenix merged 14 commits from metadata into devel 2025-04-12 17:52:55 +00:00
Showing only changes of commit 302b1d2b71 - Show all commits

View File

@@ -2,6 +2,52 @@ pub fn add(left: u64, right: u64) -> u64 {
left + right
}
mod meta_type {
pub enum Type {
Title,
Artist,
Album,
Genre,
Year,
Track,
}
}
mod meta {
use super::*;
use taglib;
pub fn get_meta(t: meta_type::Type, filepath: &String) -> Result<String, taglib::FileError> {
match t {
meta_type::Type::Title => {
match get_file(filepath) {
Ok(file) => {
match get_tag(&file) {
Ok(tag) => {
match tag.title() {
Some(title) => Ok(title),
None => Err(taglib::FileError::NoAvailableTag)
}
}
Err(err) => Err(err)
}
}
Err(err) => Err(err)
}
}
_ => Err(taglib::FileError::InvalidFile),
}
}
fn get_file(filepath: &String) -> Result<taglib::File, taglib::FileError> {
taglib::File::new(filepath)
}
fn get_tag(tag: &taglib::File) -> Result<taglib::Tag, taglib::FileError> {
tag.tag()
}
}
#[cfg(test)]
mod tests {
use super::*;