Card.parse constructor

Card.parse(
  1. String value
)

Creates a Card by a 2-character-length String.

Card.parse("As");  // => Card(Rank.ace, Suit.spade)
Card.parse("2h");  // => Card(Rank.deuce, Suit.heart)
Card.parse("3d");  // => Card(Rank.trey, Suit.diamond)
Card.parse("Kc");  // => Card(Rank.king, Suit.club)

Implementation

factory Card.parse(String value) {
  if (!RegExp(r'^[A23456789TJQK][shdc]$').hasMatch(value)) {
    throw CardParseFailure(value);
  }

  return _RankSuitBasedCard(Rank.parse(value[0]), Suit.parse(value[1]));
}