From 9eaccc22fd124c28d56f0a3b4eaf6f7fed9123f1 Mon Sep 17 00:00:00 2001 From: G2-Games Date: Fri, 12 Jan 2024 23:01:06 -0600 Subject: [PATCH] Removed `music_controller` for restructuring --- src/music_controller/config.rs | 57 ------------------------------ src/music_controller/controller.rs | 50 -------------------------- 2 files changed, 107 deletions(-) delete mode 100644 src/music_controller/config.rs delete mode 100644 src/music_controller/controller.rs diff --git a/src/music_controller/config.rs b/src/music_controller/config.rs deleted file mode 100644 index a9523d3..0000000 --- a/src/music_controller/config.rs +++ /dev/null @@ -1,57 +0,0 @@ -use std::fs; -use std::fs::read_to_string; -use std::path::PathBuf; - -use serde::{Deserialize, Serialize}; - -#[derive(Serialize, Deserialize, PartialEq, Eq)] -pub struct Config { - pub db_path: PathBuf, -} - -impl Default for Config { - fn default() -> Self { - let path = PathBuf::from("./music_database"); - - Config { - db_path: path, - } - } -} - -impl Config { - /// Creates and saves a new config with default values - pub fn new(config_file: &PathBuf) -> std::io::Result { - let config = Config::default(); - config.save(config_file)?; - - Ok(config) - } - - /// Loads config from given file path - pub fn from(config_file: &PathBuf) -> std::result::Result { - toml::from_str( - &read_to_string(config_file) - .expect("Failed to initalize music config: File not found!"), - ) - } - - /// Saves config to given path - /// Saves -> temp file, if successful, removes old config, and renames temp to given path - pub fn save(&self, config_file: &PathBuf) -> std::io::Result<()> { - let toml = toml::to_string_pretty(self).unwrap(); - - let mut temp_file = config_file.clone(); - temp_file.set_extension("tomltemp"); - - fs::write(&temp_file, toml)?; - - // If configuration file already exists, delete it - if fs::metadata(config_file).is_ok() { - fs::remove_file(config_file)? - } - - fs::rename(temp_file, config_file)?; - Ok(()) - } -} diff --git a/src/music_controller/controller.rs b/src/music_controller/controller.rs deleted file mode 100644 index 6d0acb4..0000000 --- a/src/music_controller/controller.rs +++ /dev/null @@ -1,50 +0,0 @@ -use std::path::PathBuf; -use std::sync::{Arc, RwLock}; - -use crate::music_controller::config::Config; -use crate::music_storage::library::{MusicLibrary, Song, Tag}; - -pub struct MusicController { - pub config: Arc>, - pub library: MusicLibrary, -} - -impl MusicController { - /// Creates new MusicController with config at given path - pub fn new(config_path: &PathBuf) -> Result> { - let config = Arc::new(RwLock::new(Config::new(config_path)?)); - let library = match MusicLibrary::init(config.clone()) { - Ok(library) => library, - Err(error) => return Err(error), - }; - - let controller = MusicController { config, library }; - - Ok(controller) - } - - /// Creates new music controller from a config at given path - pub fn from(config_path: &PathBuf) -> Result> { - let config = Arc::new(RwLock::new(Config::from(config_path)?)); - let library = match MusicLibrary::init(config.clone()) { - Ok(library) => library, - Err(error) => return Err(error), - }; - - let controller = MusicController { config, library }; - - Ok(controller) - } - - /// Queries the [MusicLibrary], returning a `Vec` - pub fn query_library( - &self, - query_string: &String, - target_tags: Vec, - _search_location: bool, - sort_by: Vec, - ) -> Option> { - self.library - .query_tracks(query_string, &target_tags, &sort_by) - } -}