/// What a routine is for. The kind decides the runner's stage — a barbell /// clock for work, a breathing circle for stillness, a checklist for the /// things that simply have to get done. enum RoutineKind { /// Sets, reps and rest. Timed work auto-advances into rest. Workout, /// Long timed holds with a breathing cue. No reps, rarely any rest. Meditation, /// An ordered list of tasks that have to be done, in order, every time. MustDo, } String kindLabel(RoutineKind value) { switch (value) { case RoutineKind.Workout: return "Workout"; case RoutineKind.Meditation: return "Meditation"; case RoutineKind.MustDo: return "Must-do"; } } String kindDescription(RoutineKind value) { switch (value) { case RoutineKind.Workout: return "Sets, reps and timed rest."; case RoutineKind.Meditation: return "Timed sits with a breathing cue."; case RoutineKind.MustDo: return "Tasks, in order, every time."; } } RoutineKind getRoutineKind(String? name) { for (RoutineKind value in RoutineKind.values) { if (value.name == name) { return value; } } return RoutineKind.Workout; }