Refactor FSRS data clearing into Card::clear_fsrs_data (#4123)

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-25 21:40:51 +08:00 committed by GitHub
parent d6f93fab76
commit 992fb054bd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
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)?;
}