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
61 lines
1.4 KiB
Rust
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);
|
|
}
|
|
}
|