Files
icarus_meta/src/lib.rs
phoenix 302b1d2b71
Some checks failed
Rust Build / Check (pull_request) Failing after 43s
Rust Build / Test Suite (pull_request) Failing after 47s
Rust Build / Rustfmt (pull_request) Failing after 42s
Rust Build / Clippy (pull_request) Failing after 42s
Rust Build / build (pull_request) Failing after 40s
Added code to get tag info
2025-04-12 12:08:04 -04:00

61 lines
1.4 KiB
Rust

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::*;
#[test]
fn it_works() {
let result = add(2, 2);
assert_eq!(result, 4);
}
}