Refactor FSRS data clearing into Card::clear_fsrs_data

Extracted repeated logic for clearing FSRS-related fields into a new Card::clear_fsrs_data() method. Updated set_deck and FSRS disabling code paths to use this method for improved code reuse and maintainability.
This commit is contained in:
Jarrett Ye 2025-06-24 14:15:56 +08:00
parent b250a2f724
commit e1b4cca75e
No known key found for this signature in database
GPG key ID: EBFC55E0C1A352BB
2 changed files with 8 additions and 6 deletions

View file

@ -185,12 +185,16 @@ impl Card {
self.usn = usn;
}
/// Caller must ensure provided deck exists and is not filtered.
fn set_deck(&mut self, deck: DeckId) {
self.remove_from_filtered_deck_restoring_queue();
pub fn clear_fsrs_data(&mut self) {
self.memory_state = None;
self.desired_retention = None;
self.decay = None;
}
/// Caller must ensure provided deck exists and is not filtered.
fn set_deck(&mut self, deck: DeckId) {
self.remove_from_filtered_deck_restoring_queue();
self.clear_fsrs_data();
self.deck_id = deck;
}

View file

@ -188,9 +188,7 @@ impl Collection {
}
} else {
// clear FSRS data if FSRS is disabled
card.memory_state = None;
card.desired_retention = None;
card.decay = None;
card.clear_fsrs_data();
}
self.update_card_inner(&mut card, original, usn)?;
}