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; self.usn = usn;
} }
/// Caller must ensure provided deck exists and is not filtered. pub fn clear_fsrs_data(&mut self) {
fn set_deck(&mut self, deck: DeckId) {
self.remove_from_filtered_deck_restoring_queue();
self.memory_state = None; self.memory_state = None;
self.desired_retention = None; self.desired_retention = None;
self.decay = 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; self.deck_id = deck;
} }

View file

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