choice<E, T> method Null safety

E choice<E, T>(
  1. {required String label,
  2. required List<E> list,
  3. required List<T> items}
)

Implementation

E choice<E, T> ({ required String label, required List<E> list, required List<T> items }) {
  stdout.writeln(label);
  for (final item in items) {
    final int index = items.indexOf(item) + 1;
    stdout.writeln(ColorList.dim('$index) $item' + ColorList.reset()));
  }

  final index = stdin.readLineSync();
  return list.elementAt(int.parse(index!) - 1);
}