From 0e6a676e09352f73c916da93dcc8ffc23048e38f Mon Sep 17 00:00:00 2001
From: MrDulfin <mrdulfin@mrdulfin.com>
Date: Sat, 24 Feb 2024 20:25:56 -0500
Subject: [PATCH] moved queue to its own file

---
 src/lib.rs                         |  1 +
 src/music_controller/controller.rs | 24 +-----------------------
 src/music_controller/queue.rs      | 25 +++++++++++++++++++++++++
 3 files changed, 27 insertions(+), 23 deletions(-)
 create mode 100644 src/music_controller/queue.rs

diff --git a/src/lib.rs b/src/lib.rs
index 41894fa..a9d0db0 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -13,6 +13,7 @@ pub mod music_storage {
 pub mod music_controller{
     pub mod controller;
     pub mod connections;
+    pub mod queue;
 }
 
 pub mod music_player;
diff --git a/src/music_controller/controller.rs b/src/music_controller/controller.rs
index 2d6a383..42f8f0e 100644
--- a/src/music_controller/controller.rs
+++ b/src/music_controller/controller.rs
@@ -24,31 +24,9 @@ use crate::{
     music_player::Player,
     music_storage::library::{MusicLibrary, Song},
     config::config::Config,
+    music_controller::queue::Queue,
 };
 
-struct Queue {
-    player: Player,
-    name: String,
-    songs: Vec<Song>,
-}
-impl Queue {
-    fn new() -> Result<Self, Box<dyn Error>> {
-        Ok(
-            Queue {
-            player: Player::new()?,
-            name: String::new(),
-            songs: Vec::new()
-            }
-        )
-    }
-
-    fn set_tracks(&mut self, tracks: Vec<Song>) {
-        let mut tracks = tracks;
-        self.songs.clear();
-        self.songs.append(&mut tracks);
-    }
-}
-
 pub struct Controller {
     // queues: Vec<Queue>,
     config: Arc<RwLock<Config>>,
diff --git a/src/music_controller/queue.rs b/src/music_controller/queue.rs
new file mode 100644
index 0000000..7eaace7
--- /dev/null
+++ b/src/music_controller/queue.rs
@@ -0,0 +1,25 @@
+use crate::{music_player::Player, music_storage::library::Song};
+use std::error::Error;
+
+pub struct Queue {
+    pub player: Player,
+    pub name: String,
+    pub songs: Vec<Song>,
+}
+impl Queue {
+    pub fn new() -> Result<Self, Box<dyn Error>> {
+        Ok(
+            Queue {
+            player: Player::new()?,
+            name: String::new(),
+            songs: Vec::new()
+            }
+        )
+    }
+
+    pub fn set_tracks(&mut self, tracks: Vec<Song>) {
+        let mut tracks = tracks;
+        self.songs.clear();
+        self.songs.append(&mut tracks);
+    }
+}