diff options
| author | krolxon <krolyxon@tutanota.com> | 2024-04-30 23:10:46 +0530 |
|---|---|---|
| committer | krolxon <krolyxon@tutanota.com> | 2024-04-30 23:10:46 +0530 |
| commit | 9c30356a3e0b333bab32ea1a866738fbab14ea11 (patch) | |
| tree | 511bf390931ecdd25da33a24487a90154bc5600a /src/queue.rs | |
| parent | 32a3c604717c99e498a20069bc8895ae9deb0cb9 (diff) | |
move queue into its own file, and optimize it
Diffstat (limited to 'src/queue.rs')
| -rwxr-xr-x | src/queue.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/queue.rs b/src/queue.rs new file mode 100755 index 0000000..821c508 --- /dev/null +++ b/src/queue.rs @@ -0,0 +1,37 @@ +use mpd::Song; + +#[derive(Debug)] +pub struct Queue { + pub list: Vec<Song>, + pub index: usize, +} + +impl Queue { + pub fn new() -> Self { + Queue { + list: Vec::new(), + index: 0, + } + } + + // Go to next item in list + pub fn next(&mut self) { + let len = self.list.len(); + if len != 0 { + if self.index < len - 1 { + self.index += 1; + } + } + } + + /// Go to previous item in list + pub fn prev(&mut self) { + if self.index != 0 { + self.index -= 1; + } + } + + pub fn reset_index(&mut self) { + self.index = 0; + } +} |
