applyReview method

State applyReview (State prev, Review review)

Implementation

static State applyReview(State prev, Review review) {
  CardId cardId = CardId.fromReview(review);

  CardState cardState = prev.cardStates[cardId.uniqueId];
  if (cardState == null) {
    throw ("applying review to missing card: ${review.master}");
  }
  State newState = State(Map<String, CardState>.from(prev.cardStates));

  newState.cardStates[cardId.uniqueId] =
      applyToCardState(cardState, review.ts, review.rating);

  return newState;
}