24 lines
693 B
Python
24 lines
693 B
Python
|
from entry import Entry
|
||
|
|
||
|
|
||
|
class Queue:
|
||
|
def __init__(self) -> None:
|
||
|
self._queue: list[Entry] = []
|
||
|
self.cursor = 0
|
||
|
|
||
|
def append(self, entry: Entry) -> None:
|
||
|
self._queue.append(entry)
|
||
|
|
||
|
def remove(self, index: int) -> Entry | None:
|
||
|
if 0 < index < len(self._queue):
|
||
|
return self._queue.pop()
|
||
|
|
||
|
def move(self, frm: int, to: int) -> None:
|
||
|
if 0 < frm < len(self._queue) and 0 < to < len(self._queue) and frm != to:
|
||
|
self._queue.insert(to, self._queue.pop(frm))
|
||
|
|
||
|
def __getitem__(self, index: int) -> Entry | None:
|
||
|
if index < 0 or index > len(self._queue):
|
||
|
return None
|
||
|
return self._queue[index]
|