mirror of
https://github.com/Dangoware/dango-music-player.git
synced 2025-06-22 14:42:56 -05:00
changed the move_to()
Queue function to be much simpler
This commit is contained in:
parent
407b53e941
commit
83a0fe08d4
1 changed files with 5 additions and 35 deletions
|
@ -323,43 +323,13 @@ impl<T: Debug + Clone + PartialEq, U: Debug + PartialEq + Clone + IntoIterator>
|
|||
}
|
||||
|
||||
pub fn move_to(&mut self, index: usize) -> Result<(), QueueError> {
|
||||
use QueueState::*;
|
||||
|
||||
let empty = self.items.is_empty();
|
||||
let index = if !empty {
|
||||
index
|
||||
} else {
|
||||
return Err(QueueError::EmptyQueue);
|
||||
};
|
||||
|
||||
if !empty && dbg!(index < self.items.len()) {
|
||||
let to_item = self.items[index].clone();
|
||||
|
||||
if let QueueItemType::Multi(_) = to_item.item {
|
||||
unimplemented!(); //TODO: Add logic for multi items
|
||||
}
|
||||
|
||||
loop {
|
||||
let empty = self.items.is_empty();
|
||||
let item = self.items[0].item.to_owned();
|
||||
|
||||
if item != to_item.item && !empty {
|
||||
if self.items[0].state == AddHere && self.items.get(1).is_some() {
|
||||
self.items[1].state = AddHere;
|
||||
}
|
||||
let item = self.items.remove(0);
|
||||
self.played.push(item);
|
||||
|
||||
// dbg!(&to_item.item, &self.items[ind].item);
|
||||
} else if empty {
|
||||
return Err(QueueError::EmptyQueue);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if self.items.is_empty() {
|
||||
return Err(QueueError::EmptyQueue);
|
||||
}
|
||||
for _ in 0..index {
|
||||
self.next()?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue