keyboardRow function

Iterable<String> keyboardRow(
  1. Iterable<String> letters,
  2. String close(
    1. String
    ),
  3. String hit(
    1. String
    ),
  4. String miss(
    1. String
    ), {
  5. Iterable<Letter> hits = const <Letter>[],
  6. Iterable<Letter> misses = const <Letter>[],
  7. Iterable<Letter> closes = const <Letter>[],
})

Generates a single row for keyboard.

Implementation

Iterable<String> keyboardRow(
  Iterable<String> letters,
  String Function(String) close,
  String Function(String) hit,
  String Function(String) miss, {
  Iterable<Letter> hits = const <Letter>[],
  Iterable<Letter> misses = const <Letter>[],
  Iterable<Letter> closes = const <Letter>[],
}) sync* {
  for (final letter in letters) {
    if (hits.any((hit) => hit.character == letter)) {
      yield hit(letter);
    } else if (misses.any((miss) => miss.character == letter)) {
      yield miss(letter);
    } else if (closes.any((close) => close.character == letter)) {
      yield close(letter);
    } else {
      yield letter;
    }
  }
}