is_stale() doesn't need to be passed deck

Deck changes will trigger a queue rebuild via requires_study_queue_rebuild()
This commit is contained in:
Damien Elmes 2021-05-12 09:44:10 +10:00
parent 49a1580566
commit e737eb3088

View file

@ -25,16 +25,11 @@ use crate::{backend_proto as pb, prelude::*, timestamp::TimestampSecs};
#[derive(Debug)] #[derive(Debug)]
pub(crate) struct CardQueues { pub(crate) struct CardQueues {
counts: Counts, counts: Counts,
/// Any undone items take precedence. /// Any undone items take precedence.
undo: Vec<QueueEntry>, undo: Vec<QueueEntry>,
main: VecDeque<MainQueueEntry>, main: VecDeque<MainQueueEntry>,
due_learning: VecDeque<LearningQueueEntry>, due_learning: VecDeque<LearningQueueEntry>,
later_learning: BinaryHeap<Reverse<LearningQueueEntry>>, later_learning: BinaryHeap<Reverse<LearningQueueEntry>>,
selected_deck: DeckId, selected_deck: DeckId,
current_day: u32, current_day: u32,
learn_ahead_secs: i64, learn_ahead_secs: i64,
@ -89,8 +84,8 @@ impl CardQueues {
self.counts self.counts
} }
fn is_stale(&self, deck: DeckId, current_day: u32) -> bool { fn is_stale(&self, current_day: u32) -> bool {
self.selected_deck != deck || self.current_day != current_day self.current_day != current_day
} }
fn update_after_answering_card( fn update_after_answering_card(
@ -164,7 +159,7 @@ impl Collection {
.state .state
.card_queues .card_queues
.as_ref() .as_ref()
.map(|q| q.is_stale(deck, timing.days_elapsed)) .map(|q| q.is_stale(timing.days_elapsed))
.unwrap_or(true); .unwrap_or(true);
if need_rebuild { if need_rebuild {
self.state.card_queues = Some(self.build_queues(deck)?); self.state.card_queues = Some(self.build_queues(deck)?);