applyToCardState method
Implementation
static applyToCardState(CardState prev, DateTime ts, Rating rating) {
if (prev.lastReviewed != null && prev.lastReviewed.isAfter(ts)) {
throw ("Cannot apply review before current lastReviewed");
}
if (prev.mode == "learning") {
return applyToLearningCardState(prev, ts, rating);
} else if (prev.mode == "reviewing") {
return applyToReviewingCardState(prev, ts, rating);
} else if (prev.mode == "lapsed") {
return applyToLapsedCardState(prev, ts, rating);
}
throw Exception("Card mode is incorrect");
}