fn derive_exercise_progress(
exercise_id: Uuid,
score_maximum: i32,
state: Option<&UserExerciseState>,
is_out_of_tries: bool,
) -> ExerciseProgressExpand description
Derives the client-facing per-exercise progress from an exercise’s maximum score and the user’s exercise state.