introduce track data class
This commit is contained in:
20
src/queue.rs
20
src/queue.rs
@@ -1,12 +1,12 @@
|
||||
use std::collections::vec_deque::Iter;
|
||||
use std::collections::VecDeque;
|
||||
|
||||
use rspotify::spotify::model::track::FullTrack;
|
||||
use track::Track;
|
||||
|
||||
use events::{Event, EventManager};
|
||||
|
||||
pub struct Queue {
|
||||
queue: VecDeque<FullTrack>,
|
||||
queue: VecDeque<Track>,
|
||||
ev: EventManager,
|
||||
}
|
||||
|
||||
@@ -24,35 +24,35 @@ impl Queue {
|
||||
ev: ev,
|
||||
}
|
||||
}
|
||||
pub fn remove(&mut self, index: usize) -> Option<FullTrack> {
|
||||
pub fn remove(&mut self, index: usize) -> Option<Track> {
|
||||
match self.queue.remove(index) {
|
||||
Some(track) => {
|
||||
debug!("Removed from queue: {}", &track.name);
|
||||
debug!("Removed from queue: {}", &track);
|
||||
self.ev.send(Event::Queue(QueueChange::Remove(index)));
|
||||
Some(track)
|
||||
}
|
||||
None => None,
|
||||
}
|
||||
}
|
||||
pub fn enqueue(&mut self, track: FullTrack) {
|
||||
debug!("Queued: {}", &track.name);
|
||||
pub fn enqueue(&mut self, track: Track) {
|
||||
debug!("Queued: {}", &track);
|
||||
self.queue.push_back(track);
|
||||
self.ev.send(Event::Queue(QueueChange::Enqueue));
|
||||
}
|
||||
pub fn dequeue(&mut self) -> Option<FullTrack> {
|
||||
pub fn dequeue(&mut self) -> Option<Track> {
|
||||
match self.queue.pop_front() {
|
||||
Some(track) => {
|
||||
debug!("Dequeued : {}", track.name);
|
||||
debug!("Dequeued : {}", track);
|
||||
self.ev.send(Event::Queue(QueueChange::Dequeue));
|
||||
Some(track)
|
||||
}
|
||||
None => None,
|
||||
}
|
||||
}
|
||||
pub fn peek(&self) -> Option<&FullTrack> {
|
||||
pub fn peek(&self) -> Option<&Track> {
|
||||
self.queue.get(0)
|
||||
}
|
||||
pub fn iter(&self) -> Iter<FullTrack> {
|
||||
pub fn iter(&self) -> Iter<Track> {
|
||||
self.queue.iter()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user