From 242544e7adaf411eae77a9d1e7dba05fabae0e1b Mon Sep 17 00:00:00 2001 From: phoenix Date: Tue, 28 Oct 2025 12:51:49 -0400 Subject: [PATCH 1/6] tsk-83: Added None value to types --- src/types.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/types.rs b/src/types.rs index f9e145f..7e88412 100644 --- a/src/types.rs +++ b/src/types.rs @@ -4,6 +4,7 @@ pub enum MusicTypes { WavExtension, FlacExtension, MPThreeExtension, + None, } #[derive(Debug)] @@ -11,4 +12,5 @@ pub enum CoverArtTypes { PngExtension, JpegExtension, JpgExtension, + None, } -- 2.43.0 From 59ab9b465213eff5cdd4155910e9441dc87983e9 Mon Sep 17 00:00:00 2001 From: phoenix Date: Tue, 28 Oct 2025 12:52:13 -0400 Subject: [PATCH 2/6] tsk-83: Updated function to generate song filename --- src/song.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/song.rs b/src/song.rs index d81ceba..7b3819b 100644 --- a/src/song.rs +++ b/src/song.rs @@ -126,7 +126,7 @@ impl Song { } /// Generates a filename. In order to save a song to the filesystem -pub fn generate_filename(typ: types::MusicTypes, randomize: bool) -> String { +pub fn generate_filename(typ: types::MusicTypes, randomize: bool) -> Result { let file_extension = match typ { types::MusicTypes::DefaultMusicExtension => { String::from(constants::file_extensions::audio::DEFAULTMUSICEXTENSION) @@ -140,9 +140,12 @@ pub fn generate_filename(typ: types::MusicTypes, randomize: bool) -> String { types::MusicTypes::MPThreeExtension => { String::from(constants::file_extensions::audio::MPTHREEEXTENSION) } + types::MusicTypes::None => { + return Err(std::io::Error::other("Unsupported MusicTypes")) + } }; - if randomize { + let filename: String = if randomize { let mut filename: String = String::from("track-"); let some_chars: String = String::from("abcdefghij0123456789"); let some_chars_length = some_chars.len(); @@ -156,10 +159,12 @@ pub fn generate_filename(typ: types::MusicTypes, randomize: bool) -> String { filename.push(c); } } - filename + &file_extension + format!("{filename}{file_extension}") } else { - "track-output".to_string() + &file_extension - } + format!("track-output{file_extension}") + }; + + Ok(filename) } /// I/O operations for songs -- 2.43.0 From 0b16ebcf1cb0bed1d22c43111c9442ea2953fce8 Mon Sep 17 00:00:00 2001 From: phoenix Date: Tue, 28 Oct 2025 12:52:25 -0400 Subject: [PATCH 3/6] tsk-83: Updated function to generate coverart filename --- src/coverart.rs | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/coverart.rs b/src/coverart.rs index fd60d71..f5ff85f 100644 --- a/src/coverart.rs +++ b/src/coverart.rs @@ -1,11 +1,10 @@ use std::io::Write; use rand::Rng; -use serde::{Deserialize, Serialize}; const FILENAME_LENGTH: i32 = 16; -#[derive(Clone, Debug, Default, Deserialize, Serialize, utoipa::ToSchema)] +#[derive(Clone, Debug, Default, serde::Deserialize, serde::Serialize, utoipa::ToSchema)] pub struct CoverArt { pub id: uuid::Uuid, pub title: String, @@ -18,11 +17,9 @@ pub struct CoverArt { } pub mod init { - use super::CoverArt; - /// Initializes the CoverArt with just the directory and filename - pub fn init_coverart_dir_and_filename(directory: &str, filename: &str) -> CoverArt { - CoverArt { + pub fn init_coverart_dir_and_filename(directory: &str, filename: &str) -> super::CoverArt { + super::CoverArt { directory: String::from(directory), filename: String::from(filename), ..Default::default() @@ -88,7 +85,7 @@ impl CoverArt { } /// Generates filename for a CoverArt -pub fn generate_filename(typ: crate::types::CoverArtTypes, randomize: bool) -> String { +pub fn generate_filename(typ: crate::types::CoverArtTypes, randomize: bool) -> Result { let file_extension = match typ { crate::types::CoverArtTypes::PngExtension => { String::from(crate::constants::file_extensions::image::PNGEXTENSION) @@ -99,9 +96,12 @@ pub fn generate_filename(typ: crate::types::CoverArtTypes, randomize: bool) -> S crate::types::CoverArtTypes::JpgExtension => { String::from(crate::constants::file_extensions::image::JPGEXTENSION) } + crate::types::CoverArtTypes::None => { + return Err(std::io::Error::other("Unsupported CoverArtTypes")); + } }; - if randomize { + let filename: String = if randomize { let mut filename: String = String::from("coverart-"); let some_chars: String = String::from("abcdefghij0123456789"); let some_chars_length = some_chars.len(); @@ -115,10 +115,12 @@ pub fn generate_filename(typ: crate::types::CoverArtTypes, randomize: bool) -> S filename.push(c); } } - filename + &file_extension + format!("{filename}{file_extension}") } else { - "coverart-output".to_string() + &file_extension - } + format!("coverart-output{file_extension}") + }; + + Ok(filename) } pub mod io { -- 2.43.0 From 6d5d621f16d7e82adbe7c004973cd954dcf9f238 Mon Sep 17 00:00:00 2001 From: phoenix Date: Tue, 28 Oct 2025 12:52:44 -0400 Subject: [PATCH 4/6] tsk-83: Code formatting --- src/coverart.rs | 5 ++++- src/song.rs | 9 +++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/coverart.rs b/src/coverart.rs index f5ff85f..c681291 100644 --- a/src/coverart.rs +++ b/src/coverart.rs @@ -85,7 +85,10 @@ impl CoverArt { } /// Generates filename for a CoverArt -pub fn generate_filename(typ: crate::types::CoverArtTypes, randomize: bool) -> Result { +pub fn generate_filename( + typ: crate::types::CoverArtTypes, + randomize: bool, +) -> Result { let file_extension = match typ { crate::types::CoverArtTypes::PngExtension => { String::from(crate::constants::file_extensions::image::PNGEXTENSION) diff --git a/src/song.rs b/src/song.rs index 7b3819b..b333f7f 100644 --- a/src/song.rs +++ b/src/song.rs @@ -126,7 +126,10 @@ impl Song { } /// Generates a filename. In order to save a song to the filesystem -pub fn generate_filename(typ: types::MusicTypes, randomize: bool) -> Result { +pub fn generate_filename( + typ: types::MusicTypes, + randomize: bool, +) -> Result { let file_extension = match typ { types::MusicTypes::DefaultMusicExtension => { String::from(constants::file_extensions::audio::DEFAULTMUSICEXTENSION) @@ -140,9 +143,7 @@ pub fn generate_filename(typ: types::MusicTypes, randomize: bool) -> Result { String::from(constants::file_extensions::audio::MPTHREEEXTENSION) } - types::MusicTypes::None => { - return Err(std::io::Error::other("Unsupported MusicTypes")) - } + types::MusicTypes::None => return Err(std::io::Error::other("Unsupported MusicTypes")), }; let filename: String = if randomize { -- 2.43.0 From a06edb7e836850a94256e8525b1cf32095a985d9 Mon Sep 17 00:00:00 2001 From: phoenix Date: Tue, 28 Oct 2025 12:52:55 -0400 Subject: [PATCH 5/6] tsk-83: Version bump --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ba6351c..05db99b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -149,7 +149,7 @@ checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" [[package]] name = "icarus_models" -version = "0.8.3" +version = "0.8.4" dependencies = [ "josekit", "rand", diff --git a/Cargo.toml b/Cargo.toml index 977b836..6211b23 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "icarus_models" -version = "0.8.3" +version = "0.8.4" edition = "2024" rust-version = "1.90" description = "models used for the icarus project" -- 2.43.0 From 3739ff430b87188f2dc35aa33f395d1449a9f4f0 Mon Sep 17 00:00:00 2001 From: phoenix Date: Tue, 28 Oct 2025 12:59:14 -0400 Subject: [PATCH 6/6] tsk-83: Test fix --- tests/tests.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/tests/tests.rs b/tests/tests.rs index 386940b..5617b7d 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -107,12 +107,21 @@ mod song_tests { }; assert_eq!(song.directory.is_empty(), false); - song_cpy.filename = song::generate_filename(types::MusicTypes::FlacExtension, true); + match song::generate_filename(types::MusicTypes::FlacExtension, true) { + Ok(filename) => { + song_cpy.filename = filename; + } + Err(err) => { + assert!(false, "Error generatig filename: {err:?}"); + } + }; println!("Directory: {:?}", song_cpy.directory); println!("File to be created: {:?}", song_cpy.filename); match song::io::copy_song(&song, &mut song_cpy) { - Ok(_) => {} + Ok(_) => { + println!("Song copied"); + } Err(err) => { assert!(false, "Error copying song: Error: {err:?}") } -- 2.43.0